教学计划安排检验程序(拓扑排序)报告书(5)
时间:2025-07-10
时间: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
typedef struct {
SElemType *base; SElemType *top; int stacksize; }SqStack;
typedef struct ArcNode{ int adjvex;
struct ArcNode *nextarc; }ArcNode;
typedef struct VNode{ char data[10]; ArcNode *firstarc;
}VNode,AdjList[MAX_VERTEX_NUM];
typedef struct{
AdjList vertices; int vexnum,arcnum; }ALGraph;
Status InitStack(SqStack &S) {
S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if(!S.base)
return ERROR; S.top=S.base;
S.stacksize=STACK_INIT_SIZE; return OK; }
Status Push(SqStack &S,SElemType e) {
if(S.top-S.base>=S.stacksize) {
S.base=(SElemType
*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType)); if(!S.base)
return ERROR;
S.top=S.base+S.stacksize; S.stacksize+=STACKINCREMENT; }
*S.top++=e; return OK; }
Status Pop(SqStack &S,SElemType &e)
下一篇:化验工培训教案