《数据结构邻接表的深度遍历.doc》由会员分享,可在线阅读,更多相关《数据结构邻接表的深度遍历.doc(3页珍藏版)》请在金锄头文库上搜索。
1、#include #include #include #define null 0#define maxvernum 100typedef int vertextype;typedef struct edgenode vertextype adjvex;struct edgenode * next;edgenode;typedef struct vertexnode vertextype vertex; edgenode * firstedge;vertexnode;typedef vertexnode adjlistmaxvernum;typedef struct adjlist adjli
2、st; int n,e;algraph;void createalgraph(algraph &g)int i,j,k;edgenode * s; printf(请输入顶点数和边数(输入格式为:顶点数,边数):n);scanf(%d,%d,&(g.n),&(g.e); printf(请输入顶点信息(输入格式为:):n);for(i=0;ig.n;i+)scanf(%d,&(g.adjlisti.vertex);g.adjlisti.firstedge=null; printf(请输入顶点信息(输入格式为:i,j):n); for(k=0;kadjvex=j; s-next=g.adjlisti
3、.firstedge; g.adjlisti.firstedge=s; void printfalgraph(algraph &g)int i;edgenode * p; for(i=0;i%d,p-adjvex);p=p-next;printf(n);void dfsal (algraph &g,int i,int visitedmaxvernum) edgenode *p;printf(v%d,g.adjlisti.vertex);visitedi=1;p=g.adjlisti.firstedge;while(p)if(!visitedp-adjvex)dfsal(g,p-adjvex,visited); p=p-next;void dfstraverse(algraph &g)int i;int visitedmaxvernum;for(i=0;ig.n;i+)visitedi=0;for(i=0;ig.n;i+)if(!visitedi)dfsal(g,i,visited);int main() algraph g;createalgraph(g); printfalgraph(g);printf(深度优先遍历n);dfstraverse(g); return 0;