太想哭了,废了我一晚上的时间,呜呜
#include <iostream>
using namespace std;
typedef int ArcType;
#define MVNum 100
#include<stack>
//AOV网,一个AOV网的拓扑序列不是唯一的
/*
拓扑排序的实现:
从AOV网中选择一个没有前驱的节点并输出
从网中删除该顶点以及所有以他为起点的有向边
重复前面那个步骤,直到AOV网有空或者是不存在无前驱的顶点为止
*/
//链栈的结构定义
typedef struct StackNode {
int data;
struct StackNode* next;
}StackNode,*LinkStack;
//链栈的初始化
void InitStack(LinkStack&S) {
//构造一个空栈
S = NULL;
return;
}
//链栈的入栈
void Push(LinkStack &S,int e) {
StackNode* p = new StackNode;
p->data = e;
p->next = S;
S = p;
return;
}
//链栈的出栈
void Pop(LinkStack& S, int &e) {
if (S == NULL) {
return;
}
e = S->data;
StackNode* p = new StackNode;
p = S;
S = S->next;
delete p;
return;
}
//判断链栈是否为空
bool StackEmpty(LinkStack S) {
if (S == NULL) {
return true;
}
else {
return false;
}
}
//取栈顶元素
int GetPop(LinkS