形式上确实能输出一个图的邻接表,但实际上好像不大好......
但还是记录一下(
#include <iostream>
using namespace std;
const int N = 50; //图顶点数最大值
//定义顶点结点
struct VertexNode
{
int number; //顶点编号
VertexNode *nextvertex;
};
int main()
{
//创建邻接表
int i = 0,n,j;
VertexNode v[N],*p,*newv,*q;
cout<<"输入顶点个数";
cin>>n;
while (i<n)
{
cout<<"输入顶点编号";
cin>>v[i].number;
//建立每个顶点的单链表
cout<<"输入与该点相邻的点,输入-1时输入结束";
cin>>j;
if (j != -1)
{
newv = new VertexNode;
newv->number = j;
v[i].nextvertex = newv;
p = newv;
cin>>j;
while(j>-1)
{
newv = new VertexNode;
newv->number = j;
p->nextvertex = newv;
p = p->nextvertex;
cin>>j;
}
p->nextvertex = NULL;
}
else
v[i].nextvertex = NULL;
i++;
}
//打印邻接表
cout<<"邻接表为:"<<"\n";
for (i=0;i<n;i++)
{
cout<<v[i].number;
q = v[i].nextvertex;
while(q!=NULL)
{
cout<<"->"<<q->number;
q = q->nextvertex;
}
cout<<"\n";
}
system("pause");
return (0);
}
例如p25图2.5的输出结果: