标题:看看这个程序 我要急用 谢谢
只看楼主
fjb
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-1-3
 问题点数:0 回复次数:0 
看看这个程序 我要急用 谢谢

#define MAX 50 #include<alloc.h> #include<stdlib.h> strcut HNODmat[MAX]; strcut LNOD { int adjvex; int info; int *nextarc; }; struct HNOD { int vexdata; int firstarc; }; void adjlist(int n) { LONDE *p; int i,k,u,v,w; for(i=1;i<=n;i++) { mat[i].vexdata=i; mat[i].firstarc=NULL; } printf("请输入有关系的节点编号:\n"); do { printf("u,v,w="); scanf("%d,%d,%d",&u,&v,&w); p=(LNODE *)malloc(sizeof(LNODE)); if(p==NULL) exit(1); else { p->adjvex=v; p=->info=w; p->=nextarc=mat[u].firstarc; mat[u].firstarc=p; } }while(0<u&&u<=n&&0<v&&v<=n); } void dfs(int v) { int w; LNODE *p=NULL; mat[v].vexdata=0; p=mat[v].firstarc; while(P!=NULL) { w=p->adjvex; if(mat[w].vexdata!=0) {printf("<%d,%d>\t,v,w); dfs(w); } p=p->nextarc; } } void bfirst(queuetype *qu,int v) { int w,y; LNODE *p; mat[v].vexdata=0; enqueue(qu,v); while ((y=dequeue(qu))!=0) { p=mat[y].firstarc; while(p!=NULL) { w=p->adjvex; if(mat[w].vexdata!=0) { printf("(%d,%d)\t",y,w); mat[w].vexdata=0; enqueue(qu,w); } p=->nextarc; } } }

main() { int n; printf(":请输入图的节点数:\n"); scanf("%d",&n); adjlist(n); printf("请选择需要的遍历方式:\n,1:深度优先搜索,2:广度优先搜索\n"); char s[20]; for(; ;) { scanf("%s",&s); if(s[0]!=49&&s[0]!=50) { printf("对不起,你输入的方式不对,请重新输入\n"); printf("请选择需要的遍历方式:\n,1:深度优先搜索,2:广度优先搜索\n"); } if(s[0]==49); { dfs(int n); break; } if(s[0]==50) { bfirst(queuetype *qu,int n); break; } } printf("谢谢使用\n"); }

搜索更多相关主题的帖子: include 
2005-01-03 20:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-10569-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.395659 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved