数据结构教学课件5-05建立图的邻接表算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int adjvex;
//邻接点域
struct node *next;
百度文库
//指针域
//若要表示边上的权,则应增加一个数据域
}EdgeNode;
邻接点域 指针域
顶点域
指针域
边表结点结构
顶点表结点结构
typedef struct vnode
{ //顶点表结点定义
VertexType vertex;
//顶点域
vi的边表头部
}
s=(EdgeNode *)malloc(sizeof(EdgeNode));
if(s==NULL)
{
puts("空间申请失败");return;
}
s->adjvex=i; //邻接点序号为i
s->next=G->adjlist[ j].firstedge;
G->adjlist[ j].firstedge=s;
//将新结点*s
插入顶点vj的边表头部
}
06
THANKS
2016.9.18
}ALGraph;
04
0.5 建立图的邻接表算法
2.建立无向图的 邻接表算法
void CreateALGraph(ALGraph *G) {//建立无向图的邻接表
int i,j,k; EdgeNode *s; scanf("%d%d",&G->n,&G->e);//读入顶点数和边数 getchar(); for(i=0;i<G->n;i++) {//建立顶点表
2016
数据结构
Data structure
建立图的邻接表算法
讲授:刘斌
常州信息职业技术学院
02
学目标
1 图的邻接表存储结构的描述 2 建立无向图的邻接表算法
03
0.5 建立图的邻接表算法
图三的、邻链接表表的算插法入 1、图的邻接表存储结构的描述
typedef struct node
{//边表结点定义
G->adjlist[i].vertex=getchar();//读入顶点信息 G->adjlist[i].firstedge=NULL;//边表置为空表 }
05
0.5 建立图的邻接表算法
for(k=0;k<G->e;k++)
{//建立边表 scanf("%d%d",&i,&j);//读入边(vi,vj)顶点对序号 s=(EdgeNode *)malloc(sizeof(EdgeNode)); //生成边表结点 if(s==NULL) { puts("空间申请失败");return; } s->adjvex=j; //邻接点序号为j s->next=G->adjlist[i].firstedge; G->adjlist[i].firstedge=s;//将新结点*s插入顶点
EdgeNode *firstedge;
//边表头指针
}VertexNode;
typedef VertexNode AdjList[VertexNum];
//AdjList是邻接表类型
typedef struct
{//邻接表定义
AdjList adjlist;//邻接表
int n,e;//图中当前顶点数和边数