资源简介
键盘输入数据,建立一个有向图的邻接表,并输出该邻接表;在有向图的邻接表的基础上计算各顶点的度,并输出;以有向图的邻接表为基础实现并输出它的拓扑排序序列;
代码片段和文件信息
#include
#include
struct IkGraph
{
int data;
struct IkGraph *next;
};
int menu()
{
printf(“-------------------------------------------------------\n“);
printf(“1:键盘输入数据,建立一个有向图的邻接表,并输出该邻接表\n“);
printf(“2:在有向图的邻接表的基础上计算各顶点的度,并输出\n“);
printf(“3:以有向图的邻接表为基础实现并输出它的拓扑排序序列\n“);
printf(“0:退出\n“);
printf(“--------------------------------------------------------\n“);
printf(“请输入要选择的功能:“);
int chose;
scanf(“%d“&chose);
return chose;
}
int* inD(IkGraph *Lint nint *in)
{
IkGraph *p;
for(int i=0;i {
if(L[i].next!=NULL)
{
p=L[i].next;
while(p!=NULL)
{
in[p->data-1]++;
p=p->next;
}
}
}
return in;
}
int* outD(IkGraph *Lint nint *out)
{
IkGraph *p;
for(int i=0;i {
if(L[i].next!=NULL)
{
p=L[i].next;
while(p!=NULL)
{
out[L[i].data-1]++;
p=p->next;
}
}
}
return out;
}
void main()
{
int chose;
int nij;
IkGraph *p;
int **node*in*out;
int flag=0count=0top=0;
int *stack;
struct IkGraph *list*tem;
loop: chose=menu();
switch(chose)
{
case 1:
printf(“请输入顶点的个数:“);
scanf(“%d“&n);
node=(int **)malloc(n*sizeof(int *));
for(i=0;i node[i]=(int *)malloc(n*sizeof(int));
printf(“请输入各条边的连通性(以0或1替代0表示不连通1表示连通):\n“);
for(i=0;i for(j=0;j {
if(i!=j)
{
printf(“%d->%d的连通性:“i+1j+1);
scanf(“%d“&node[i][j]);
}
}
list=(IkGraph *)
- 上一篇:二叉树建立 二叉树基本算法的实现
- 下一篇:TEXTQOL 封装
相关资源
- 使用C 实现的教学计划安排检验程序
- 图的邻接矩阵存储和邻接表存储
- 判断一个有向图中是否存在回路,并
- draw-pic.zip
- 数据结构课程设计-输出DAG的所有拓扑
- 数据结构_图的拓扑排序
- Floyd算法,求有向图中各顶点之间的最
- 数据结构课设拓扑排序源代码教学计
- 采用邻接表存储结构,编写一个判别
- 图论算法-求有向图中任意两点间所有
- 教学计划编制问题有向图和拓扑排序
- 排课程序拓扑排序
- 图论算法-求(有向)图中任意两点间
- 7.27④ 采用邻接表存储结构,编写一
- 拓扑排序------打印输出计算机本科专
- 拓扑排序输出所有可能的拓扑排序
- 邻接表图遍历的演示注释比较详尽,
- 有向图的全部拓扑序列(回溯法)
- 图的判断 图的拓扑排序 单源最短路径
- 数据结构图的邻接矩阵邻接表存储表
- 数据结构课程设计-图的存储与遍历
- 算法设计-拓扑排序
- 排课表程序拓扑排序
- 求最短路径Dijkstra算法
- 存储结构邻接表或邻接矩阵,图的广
- 图的存储结构邻接表或邻接矩阵,的
- 输出连通分量的个数和各连通分量的
- 拓扑排序数据结构课程设计报告图形
- 图的邻接表的实现带权路径
- 邻接表或者邻接矩阵为存储结构实现
评论
共有 条评论