数据结构图的遍历C++ 5

#include<iostream.h>#include<string>#defineNumEdges50#defineNumVertices10typedefcharV... #include<iostream.h>
#include<string>
#define NumEdges 50
#define NumVertices 10
typedef char VertexData;
typedef int EdgeData;
typedef struct{
VertexData vexlist[NumVertices];
EdgeData edge[NumVertices][NumVertices];
int n,e;
}MTGraph;
struct node{
int element;
node *next;
};
struct QUEUE{
node *front;
node *rear;
};
typedef enum{FALSE,TRUE}Boolean;
Boolean visited[NumVertices];

void MAKENULL(QUEUE &Q)
{
Q.front=new node;
Q.front->next=NULL;
Q.front=Q.rear;
}

bool Empty(QUEUE Q)
{
if(Q.front==Q.rear)
return true;
else
return false;
}

void ENQUEUE(int x,QUEUE Q)
{
Q.rear->next=new node;
Q.rear=Q.rear->next;
Q.rear->element=NULL;
Q.rear->next=NULL;
}

int DEQUEUE(QUEUE Q)
{
node *p;
int m;
p=Q.front->next;
m=p->element;
Q.front->next=p->next;
delete p;
return m;
}
void CreateMGraph(MTGraph &G)
{
int j,i,k,w;
cout<<"输入顶点个数、边个数:";
cin>>G.n>>G.e;
for(i=0;i<G.n;i++)
G.vexlist[i]=getchar();
for(i=0;i<G.n;i++)
{
for(j=0;j<G.n;j++)
G.edge[i][j]=0;
}
for(k=0;k<G.e;k++)
{
cout<<"输入邻接矩阵中的位置:";
cin>>i>>j>>w;
G.edge[i][j]=w;
G.edge[j][i]=w;
}
}

void BFS(MTGraph *G,int k)
{
int j,i;
for(i=0;i<G->n;i++)
visited[i]=FALSE;
cout<<G->vexlist[i]<<" ";
visited[i]=TRUE;
for(j=0;j<G->n;j++)
if((G->edge[i][j]==1)&&!visited[j])
BFS(G,j);
}

void DFS(MTGraph *G,int k)
{
int i,j;
QUEUE Q;
MAKENULL(Q);
cout<<G->vexlist[k];
visited[k]=TRUE;
ENQUEUE(k,Q);
while(!Empty(Q))
{
i=DEQUEUE(Q);
for(j=0;j<G->n;j++)
if(G->edge[i][j]==1&&!visited[j])
{
cout<<G->vexlist[j]<<" ";
visited[j]=TRUE;
ENQUEUE(j,Q);
}
}
}

void main()
{
MTGraph G;
int i,j;
CreateMGraph(G);
/*for(i=0;i<G.n;i++)
{
for(j=0;j<G.n;j++)
if(G.edge[i][j])
cout<<i<<"->"<<j<<endl;
}*/
DFS(&G,0);
//for(i=0;i<G.n;i++)
//visited[i]=False;
//BFS(&G,0);

}

求助啊,来大神!!!
展开
 我来答
百度网友5c08b3058
2012-12-08 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:103万
展开全部
写得太恶心了!!都懒得看。
你到底要用DFS遍历还是BFS遍历??
还有这跟本不需要用什么链表。
你要弄清楚你要以什么方式存这个图,是邻接表,便表还是邻接矩阵或是其他的,你要以什么方式便利(深搜递归还是广搜(队列))你再做。这么混乱。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小女巫依依
2012-12-03 · TA获得超过583个赞
知道小有建树答主
回答量:703
采纳率:0%
帮助的人:421万
展开全部
你想问什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千掉糯火15
2012-12-10
知道答主
回答量:50
采纳率:0%
帮助的人:16.2万
展开全部
这么多,懒得看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式