数据结构(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的弧

注意

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

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

总结:

相关推荐
吕司2 小时前
LeetCode Hot Code——最大子数组和
数据结构·算法·leetcode
海清河晏1112 小时前
数据结构 | 单链表
数据结构·unity·dreamweaver
会编程的土豆3 小时前
【数据结构与算法】拓扑排序2
数据结构·算法·leetcode
来自远方的老作者3 小时前
第7章 运算符-7.5 比较运算符
开发语言·数据结构·python·算法·代码规范·比较运算符
圣光SG4 小时前
数据结构通用笔记(语言无关)
数据结构·学习·链表·数组··队列
郝学胜-神的一滴4 小时前
「栈与缩点的艺术」二叉树前序序列化合法性判定:从脑筋急转弯到工程实现
java·开发语言·数据结构·c++·python·算法
汀、人工智能4 小时前
[特殊字符] 第25课:合并两个有序链表
数据结构·算法·链表·数据库架构··合并两个有序链表
计算机安禾4 小时前
【数据结构与算法】第30篇:哈希表(Hash Table)
数据结构·学习·算法·哈希算法·散列表·visual studio
lihao lihao5 小时前
进程地址空间
数据结构·c++·算法
汀、人工智能5 小时前
[特殊字符] 第16课:最小覆盖子串
数据结构·算法·数据库架构·图论·bfs·最小覆盖子串