数据结构——邻接表表示图(C语言)

本文介绍了数据结构中的邻接表表示法,用于存储图的结构。邻接表结合了顺序和链式存储,每个顶点对应一个链表,包含其相邻顶点。博客内容包括邻接表的概念、邻接表结构的代码实现,以及如何初始化和插入边来建图。作者是一名自学数据结构的非计算机专业大二学生,期待改进和学习。
摘要由CSDN通过智能技术生成

概念:

邻接表

邻接表,存储方法跟树的孩子链表示法相类似,是一种顺序分配和链式分配相结合的存储结构。如这个表头结点所对应的顶点存在相邻顶点,则把相邻顶点依次存放于表头结点所指向的单向链表中。

邻接表是图的一种最主要存储结构,用来描述图上的每一个点。对图的每个顶点建立一个容器(n个顶点建立n个容器),第i个容器中的结点包含顶点Vi的所有邻接顶点。实际上我们常用的邻接矩阵就是一种未离散化每个点的边集的邻接表。
这篇博客接着上一篇邻接矩阵表示图,是我在学习数据结构根据伪码写出的代码,有诸多不足,希望大神看到能指点一二。

首先是
此处不需要存储起始顶点,只需要存储终顶点就可以了

#define MaxVertexNum 10 
typedef int Vertex;

//边 
  struct AdjVNode{
   
	Vertex AdjV;//邻接点(终点)下标
	int Weight;//权重
	struct AdjVNode *Next;  
};
typedef struct AdjVNode *PtrToAdjVNode;

接下来是邻接表结构

typedef struct VNode{
   
	PtrToAdjVNode FristEdge;
	int Data;//可用于存单链上的顶点数,此项可有可无
}AdjList[MaxVertexNum];
struct GNode{
   
	int Nv;//顶点数 
	int Ne;//边数 
	AdjList G;//邻接表 
};
typedef struct GNode *PtrToGNode
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值