⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 源代码7.14.txt

📁 建立图的邻接表,编写算法,由依次输入的顶点数目,弧的数目,各顶点的信息和各条弧的信息建立有向图 的邻接表
💻 TXT
字号:
#include<iostream>
using namespace std;

typedef struct ArcNode
{
 int adjvex;
 struct ArcNode *nextarc;
}ArcNode;

typedef struct VNode
{
 char name[10];
 int data;
 ArcNode *firstarc;
}VNode,AdjList[30];

typedef struct
{
 AdjList vertices;
 int vexnum,arcnum;
 int kind;
}ALGraph;
int InitGraph(ALGraph &g)
{
 int i;
 for(i=0;i<30;i++)
 g.vertices[i].firstarc=NULL;
 return 1;
}
int Greate(ALGraph &g)
{
 int i,j,k,start,end,vec;
 ArcNode *temp;
 cout<<"输入顶点个数和边数:";
 cin>>g.vexnum>>g.arcnum;
 for(i=1;i<=g.vexnum;i++)
 {
  cout<<"输入第"<<i<<"节点的内容";
  cin>>vec;
  cin>>g.vertices[i].name;
  g.vertices[i].data=vec;
 }
 for(i=1;i<=g.arcnum;i++)
 {
  cout<<"输入第"<<i<<"条边";
  cin>>start>>end;
  temp=new ArcNode;
  temp->adjvex=end;
  temp->nextarc=g.vertices[start].firstarc;
  g.vertices[start].firstarc=temp;
  temp=new ArcNode;
  temp->adjvex=start;
  temp->nextarc=g.vertices[end].firstarc;
  g.vertices[end].firstarc=temp;
 }
 return 1;
}

int PrintGraph(ALGraph g)
{
 int i;
 ArcNode *temp;
 for(i=1;i<=g.vexnum;i++)
 {
  temp=g.vertices[i].firstarc;
  while(temp!=NULL)
  {
   cout<<g.vertices[i].name<<"->"<<g.vertices[temp->adjvex].name<<" ";
   temp=temp->nextarc;
  }
  cout<<endl;
 }
 return 1;
}

int main()
{

 ALGraph g;
 InitGraph(g);
 Greate(g);
 PrintGraph(g);
 return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -