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

时间: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

二 总体设计

拓扑排序:

示例数据:输入:学期数: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

开始输入入度,定点 数,已输出顶点

数已输出定点 数<顶点数>

是 否 入度=0是

顶点入栈

栈非空是

输出顶点

顶点数减 1 顶点入度减 1 累加已输出顶点数

结束IV

示例数据:输入:学期数: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

三 详细设计

3.1 算法设计分析

拓扑排序时有向图的一种重要运算。在课表排序中,每门课都有多种关系:、 (一)先后关系,即必须在一门课学完后,才能开始学习另一门课;

(二)在一类课之间没有次序要求,即两门课可以同时学习,互不影响。将AOV网络中的各个顶点排列成一个线性有序序列,使得所有的要求的前趋、后趋关系都能得到满足。

在AOV网络进行拓扑排序的方法:

(一) 从中选择一个没有前趋的顶点,并把它输出; (二) 从网络中删去该顶点和从该顶点出发的所有有向边; 重复执行上述两步,直到网中所有的顶点都被输出

3.2 源代码

#include <malloc.h> #include <stdio.h>

#define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0

#define STACKINCREMENT 10 #define MAX_VERTEX_NUM 20 #define STACK_INIT_SIZE 100

typedef int Status; typedef int SElemType; int indegree[20]={0};

教学计划安排检验程序(拓扑排序)报告书(4).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

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

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

支付方式:

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

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