资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
/* /程序:树的创建及深度遍历程序:树的创建及深度遍历 /Scharf /* #include #include #define MaxVerNum 100 /*设定为设定为 100 存储空间存储空间*/ int visitedMaxVerNum;/* typedef struct nodeint adjvex;struct node *next; EdgeNode;/* / 创建顶点结点创建顶点结点 /* typedef struct char vertex;EdgeNode *firstedge; VertexNode;/* / 创建以邻接表方式存储的图类型创建以邻接表方式存储的图类型 /* 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 个顶点个顶点,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-adjvex=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);
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号