#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "malloc.h"
#define MAX 100
struct ArcNode
{
int adjvex;//临接的边序号.
ArcNode *next;//下一个节点
};
struct Vnode
{
int data;//顶点信息
ArcNode *InputLine;//出边表
ArcNode *OutputLine;//入边表
};
struct Graph
{
Vnode vertexs[MAX];//顶点数组
int vexnum;//顶点数
int arcnum;//边数
};
Graph G;
void CreatGraph()
{
int i;
ArcNode *pi;
int v1,v2;
G.vexnum=0;
G.arcnum=0;
printf("please input Graph's vexnum or arcnum.\n");
scanf("%d %d",&G.vexnum,&G.arcnum);
for(i=0;i<G.vexnum;i++)
{
G.vertexs[i].InputLine=G.vertexs[i].OutputLine=NULL;
}
printf("please input partner number like X X by point to point.\n");
for(i=0;i<G.arcnum;i++)
{
scanf("%d %d",&v1,&v2);
v1--,v2--;
//input line
pi=(ArcNode*)malloc(sizeof(struct ArcNode));
pi->adjvex=v2;
pi->next=G.vertexs[v1].InputLine;
G.vertexs[v1].InputLine=pi;
//output line
pi=(ArcNode*)malloc(sizeof(struct ArcNo
邻接表存图(出边表+入边表)
最新推荐文章于 2024-12-29 16:04:09 发布