花了点时间,写了下 无向图邻接表的代码 还有2中遍历,和教科书上差不多
#include<iostream>
#include<queue>
using namespace std;
# define MVNum 100
int visited[MVNum];
queue<int>q;
struct ArcNode
{
int adjvex;
ArcNode *nextarc;
};
typedef struct VNode
{
char data;
ArcNode *firstarc;
}Adjlist[MVNum];
struct ALGraph
{
Adjlist vertices;
int vexnum;
int arcnum;
};
ALGraph G;
int locatevex(ALGraph G,char x)
{
int i=0;
while(i<G.vexnum && x!=G.vertices[i].data)
i++;
if(i<G.vexnum)
return i;
}
void CreateUDG(ALGraph &G)
{
cout<<"请输入图的顶点数:\n";
cin>>G.vexnum;
cout<<"请输入图的弧数:\n";
cin>>G.arcnum;
char v1;
char v2;
int v1locate;
int v2locate;
ArcNode * p,* q;
cout<<"---------------输入图的信息---------------\n"<<endl;
cout<<"输入顶点信息(点对边)"<<endl;
for(int i=0;i<G.vexnum;i++)
{
cin>>G.vertices[i].data;