![](https://csdnimg.cn/release/download_crawler_static/5965705/bg6.jpg)
教学计划编制课程设计
algraph.vertices[i].data.number=atoi(sp[0]); //创建顶点集
algraph.vertices[i].data.name=new char[strlen(sp[1])+1];
strcpy(algraph.vertices[i].data.name,sp[1]);
algraph.vertices[i].data.Xuefen=atoi(sp[2]);
algraph.vertices[i].firstarc=false;
i++; //初值为 0
}
algraph.vexnum=i; //顶点的个数赋值
ifstream in1(f2); //读取课程先修关系文件.txt
while(in1>>p[0])
{
in1>>p[1];
i = LocateVex(atoi(p[0])); //创建邻接表
j = LocateVex(atoi(p[1]));
*p = new ArcNode;
p->adjvex = j;
p->nextarc = false;
p->nextarc = algraph.vertices[i].firstarc;
algraph.vertices[i].firstarc = p;
k++; //初值为 0
}
algraph.arcnum=k; //边数的个数赋值
}
算法 2:显示课程的编号,名称,学分
Step1:遍历图的各个顶点的信息
for(i = 0;i<algraph.vexnum;i++)
{
cout<<algraph.vertices[i].data.number<<'\t'<<algraph.vertices[i].data.name<<'\t'
<<algraph.vertices[i].data.Xuefen<<'\n';
}
算法 3:显示各科课程先修关系
Step1:遍历图的各个顶点所建立的邻接表的信息
for(t i = 0;i<algraph.vexnum;i++)
{ *p = algraph.vertices[i].firstarc;
while(p)
{
cout<<algraph.vertices[i].data.name<<"\t---->\t"
<<algraph.vertices[p->adjvex].data.name<<endl;
p = p->nextarc; //遍历下一个顶点
}
算法 4.1:求顶点的入度
Step1:初始化 indegree 数组为 0
Step2:遍历顶点集的邻接表,计算每一个顶点的入度
for(i = 0;i<algraph.vexnum;i++) //对每一个点进行操作
第 6 页