数据结构(6.2_2)——领接表法

领接表法(顺序存储+链式存储)

代码:

cpp 复制代码
#define MaxVertextNum 10
//边(弧)
typedef struct ArcNode {
    int adjvex;//边/弧指向哪个结点
    struct ArcNode* next;//指向下一条弧的指针
    //InfoType info;//边权值
}ArcNode;
//顶点
typedef struct VNode {
    VertexType data;//顶点信息
    ArcNode* first;//第一条边/弧
}VNode,AdjList[MaxVertextNum];
//用领接表存储的图
typedef struct {
    AdjList vertices;
    int vexnum,arcnum;
}ALGraph;
  1. 在无向图中边结点的数量是2|E|,整体空间复杂度为O(|V|+2|E|)
  2. 在无向图中边结点的数量是|E|,整体空间复杂度为O(|V|+|E|)

如何求顶点的度、入度和出度?

无向图

有多少边结点就有多少度

有向图

有向图的度=入度+出度

出度:

  1. 遍历顶点 :对于图中的每个顶点 v

    a. 遍历边 :遍历顶点 v 的所有出边(即所有形式为 (v, w) 的边,其中 w 是另一个顶点)。

    b. 计数 :对于每一条出边,将顶点 v 的出度计数增加1。

入度:

  1. 遍历边 :遍历图中的所有边 (v, w):例如寻找入度a的弧,遍历完后找到所有指向0的弧

注意

图的领接表表示方式不唯一

图的领接矩阵表示方式唯一

总结:

相关推荐
物联网嵌入式小冉学长3 小时前
2.线性表的链式存储-链表
数据结构·链表
顾小玙3 小时前
前缀和:leetcode974--和可被K整除的子数组
数据结构·算法
W说编程4 小时前
算法导论第三章:数据结构艺术与高效实现
c语言·数据结构·算法
hn小菜鸡4 小时前
LeetCode 2917.找出数组中的K-or值
数据结构·算法·leetcode
yield-bytes5 小时前
Java并发进阶系列:深度讨论高并发跳表数据结构ConcurrentSkipListMap的源代码实现(上)
数据结构
好易学·数据结构5 小时前
可视化图解算法51:寻找第K大(数组中的第K个最大的元素)
数据结构·python·算法·leetcode·力扣·牛客网·堆栈
NULL指向我7 小时前
C语言数据结构笔记5:Keil 编译器优化行为_malloc指针内存分配问题
c语言·数据结构·笔记
梦境虽美,却不长10 小时前
数据结构 线性表 学习 2025/6/12 21点27分
数据结构·学习
GalaxyPokemon11 小时前
LeetCode - 76. 最小覆盖子串
运维·服务器·数据结构·算法·leetcode
嵌入式@秋刀鱼11 小时前
《 第三章-招式初成》 C++修炼生涯笔记(基础篇)程序流程结构
linux·开发语言·数据结构·c++·笔记·visual studio code