图论之邻接矩阵与邻接表

本文深入探讨图数据结构的两种主要表示方法:邻接矩阵和邻接表。详细解析了无向图的邻接矩阵特性,如对称性,以及如何通过矩阵元素表示边的存在与否。同时,介绍了有向图的邻接表表示,包括边和顶点的属性,以及如何通过链表实现高效的边查找。适合于计算机科学和数据结构初学者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

邻接矩阵

//*******************邻接矩阵,无向图,对称的********************************* 
typedef struct
{
	int no;//顶点编号 
	char info;//顶点其他信息 
}VertexType //顶点类型

typedef struct //图的定义
{
	int edge[maxSize][maxSize];//二维矩阵 
	int n,e;//顶点数,边数 
	VertexType vex[maxSize] //存放结点信息
	/*
	思考:
		邻接矩阵,首先是每个结点是一个单位,保存相关信息,比如入度出度,
		不过好像不用,因为矩阵中会表示出来, 邻接矩阵了。
		邻接矩阵的属性:结点数,边数,结点信息,矩阵(二维数组) 
		
		 
*/ 
} //Mgraph 

邻接表

//*******************邻接表 链式 ********************************* 
typedef struct  //边 
{
	int n;//该边指向的结点的编号 
	struct ArcNode *nexttarc;//指向下一条边的指针 
	int info;//一般为边的权值,这个可要可不要,根据题意 
}ArcNode

typedef struct
{
	char data;//顶点信息,与info类似
	ArcNode *firstarc;//指向第一条边的指针 
}VNode

typedef struct
{
	VNode adjlist[maxSize];//邻接表
	int n,e;	 
} Agraph

/*

总结:
邻接矩阵:是对称的,无向图,如果没有权值的话,一般默认有线为1,否则-1
邻接表:是链式的,有向图
边:
因为权值是边的属性,所以边也是属性,边是从一个点指向另一个
点,所以,下一个点也是边的属性,而这,就又变成了,边指向边,
下一条边的地址也是边的属性。
属性: 1.边本身信息(权值) 2.下一条边 3.这条边指向的结点
点:点是每条链的头,所以,存储的,就是点本身的信息和下一条边
属性:1.本身的信息 2.第一条边
图:点,点数,边

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值