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

时间:2025-07-10

示例数据:输入:学期数: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文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219