图的邻接表创建法及深度遍历

上传人:wm****3 文档编号:41038389 上传时间:2018-05-28 格式:DOC 页数:3 大小:19KB
返回 下载 相关 举报
图的邻接表创建法及深度遍历_第1页
第1页 / 共3页
图的邻接表创建法及深度遍历_第2页
第2页 / 共3页
图的邻接表创建法及深度遍历_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《图的邻接表创建法及深度遍历》由会员分享,可在线阅读,更多相关《图的邻接表创建法及深度遍历(3页珍藏版)》请在金锄头文库上搜索。

1、/* /程序:树的创建及深度遍历程序:树的创建及深度遍历 /Scharf /* #include #include #define MaxVerNum 100 /*设定为设定为 100 存储空间存储空间*/ int visitedMaxVerNum;/* typedef struct nodeint adjvex;struct node *next; EdgeNode;/* / 创建顶点结点创建顶点结点 /* typedef struct char vertex;EdgeNode *firstedge; VertexNode;/* / 创建以邻接表方式存储的图类型创建以邻接表方式存储的图类型

2、/* typedef struct VertexNode adjlistMaxVerNum;int n,e;ALGraph;/* / 此处创建此处创建 /* void CreateALGraph(ALGraph *G) int i,j,k;EdgeNode *p;printf(“输入顶点数和边数输入顶点数和边数(格式格式:n,e):t“);scanf(“%d,%d“,for(i=0;in;i+) /*建立有建立有 n 个顶点的顶点表个顶点的顶点表*/getchar(); /*消除前面输入的回车,以免被当做字符读入消除前面输入的回车,以免被当做字符读入*/printf(“n 输入第输入第%d 个

3、顶点个顶点,Enter 键结束键结束:“,i+1);scanf(“%c“,G-adjlisti.firstedge=NULL; /* 顶点的边表头指针设为空顶点的边表头指针设为空*/printf(“n 请输入各个边的信息请输入各个边的信息,Enter 键结束键结束.(“);printf(“如如 0 和和 1 有边,即输入:有边,即输入:0,1e);k+) /*此处是建立边表此处是建立边表*/printf(“第第%d 条边是条边是:“,k+1); scanf(“%d,%d“, p=(EdgeNode*)malloc(sizeof(EdgeNode);/*生成新的表结点生成新的表结点*/ p-ad

4、jvex=j; p-next=G-adjlisti.firstedge; /*将新边表结点将新边表结点 p 插入到顶点插入到顶点 Vi 的链表头部的链表头部*/ G-adjlisti.firstedge=p; / CreatALGraph 结束结束/* / 深度优先遍历函数部分深度优先遍历函数部分 /* void DFS(ALGraph G,int v) EdgeNode *p;int w;/*printf(“树的深度遍历是树的深度遍历是:%d-“,v);*/printf(“%c-“,G.adjlistv);visitedv=1;for(p=G.adjlistv.firstedge;p;p=p-next)w=p-adjvex; if(!visitedw)DFS(G,w); /* void DFStraverse(ALGraph G) int v;for(v=0;vG.n;v+)visitedv=0;printf(“树的深度优先遍历结点树的深度优先遍历结点:“);for(v=0;vG.n;v+)if(!visitedv)DFS(G,v); printf(“n“);/此处仅是便于看的清楚,无其他用处此处仅是便于看的清楚,无其他用处 /* main() ALGraph Q;CreateALGraph(DFStraverse(Q);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号