手机版

教学计划安排检验程序(拓扑排序)报告书(7)

时间:2025-07-13   来源:未知    
字号:

示例数据:输入:学期数:5,课程数:12,课程间的先后关系数:16,课程的代表值:v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12。课程间两两间的先后关系:v1 v2,v1 v3, v1 v4,v1 v12,v2 v3,v3 v5,v3 v7,v3 v8,v4 v5, v5 v7,v6 v8,v9 v10, v9 v11 , v9 v12,v10 v12,v11 v6输出:第1学期应学的课程:v1 v9第2学期应学的课程:v2 v4 v10 v11第3学期应学的课程:v3 v6 v12第4学期应学的课程:v5 v8第5学期应学的课程:v7

p->adjvex=w-1;

p->nextarc=G.vertices[v-1].firstarc; G.vertices[v-1].firstarc=p; }

return OK; }

void FindInDegree(ALGraph G) {

ArcNode* p;

for(int i=0;i<G.vexnum;i++) {

p=G.vertices[i].firstarc; while(p) {

for(int j=0;j<G.vexnum;j++) if(p->adjvex==j) indegree[j]++; p=p->nextarc; } } }

Status TopologicalSort(ALGraph G) {

SqStack S1,S2; ArcNode* p; int i,count,k; FindInDegree(G); InitStack(S1); InitStack(S2);

for(i=0;i<G.vexnum;++i) if(!indegree[i]) Push(S1,i); count=0;

while(!StackEmpty(S1)) {

printf("第%d学期应学的课程:",count+1); while(!StackEmpty(S1)) {

Pop(S1,i);

printf("%s ",G.vertices[i].data); Push(S2,i); }

printf("\n");

count++; while(!StackEmpty(S2)) {

教学计划安排检验程序(拓扑排序)报告书(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)