图的存储结构:邻接多重表

  • 产生条件:
  • 邻接多重表的定义:
  • 邻接多重表的代码定义:
  • 删除:
  • 性能分析:
  • 十字链表与邻接多重表的对比

产生条件:

当用邻接矩阵法存储时:空间复杂度为O(|V|^2),太大
当用邻接表法存储时:一条边会重复存储两次,产生冗余

邻接多重表的定义:

顶点表节点:

1、data:顶点数据域
2、firstedge:边表节点的头指针

边表节点:

1、ivex:该边的第一个端点
2、ilink:与该端点相邻的下一个边表节点的指针
3、jvex:该边的第二个端点
4、jlink:与该端点相邻的下一个边表节点的指针
5、info:权值
6、mark:标记

邻接多重表的代码定义:

#define MaxVertexTypeNum 100
typedef char VertexType;
typedef int EdgeType;   typedef struct ArcNode{                 //边表节点 int ivex,jvex;                       //边的俩个节点            struct ArcNode *ilink , *jhink;     //维护俩个节点的边表 //InfoType info;                    //权值 //bool mark;                       //标记位
}ArcNode;                               //边表节点的类型 typedef struct VNode{                 //顶点表节点 VertexType data;                    //顶点的数据 ArcNode *firstedge;                 //边表的头指针
}VNode;                                 // 邻接表类型 typedef struct{                            //十字链表 VNode adjmulist[MaxVertexTypeNum];   //所有结点的数据 int vexnum,arcnum;                    //节点数和边数
}ALGraph;                               //十字链表的类型

删除:

删除边AB:

删除节点E:

性能分析:

空间复杂度:O(|v| + |E|)

十字链表与邻接多重表的对比

十字链表: 用于有向图,解决了无法快速找到一个顶点入边的问题
邻接多重表: 用于无向图,解决了重复存储同一条边2次的问题

数据结构之图的存储结构:邻接多重表相关推荐

  1. 【图的存储】邻接多重表

    目录 前言 一.什么是邻接多重表? 二.邻接多重表的构成 1.顶点集+边集 2.顶点和边的连接 总结 前言   无论是什么程序都要和数据打交道,一个好的程序员会选择更优的数据结构来更好的解决问题,因此 ...

  2. 【数据结构】图的存储结构—邻接表

    目录 什么是邻接表? 邻接表:定义 邻接表:相关类 邻接表:基本操作 1)创建无向网 2)创建有向网 3)顶点定位 4)插入边 5)第一个邻接点 6)查询下一个邻接点 小试牛刀 对比邻接表与邻接矩阵

  3. 【数据结构】图的存储结构(邻接矩阵、邻接表、十字链表、邻接多重表)及实现(C语言)

    目录 1. 邻接矩阵表示法 1.1 图的邻接矩阵 1.2 创建有向网的邻接矩阵 2. 邻接表表示法 2.1 图的邻接表存储结构 2.2 创建有向图的邻接表 3. 十字链表表示法 3.1 图的十字链表存 ...

  4. 图的存储结构——邻接表法

    图的存储结构--邻接表法 一.邻接表 ​ 由顶点表和边表构成,顶点表由顶点域(data)和指向第一条邻接边的指针(firstarc)构成,边表(邻接表)结点由邻接点域(adjvex)和指向下一条邻接边 ...

  5. [转]数据结构:图的存储结构之邻接多重表

    1.引言: 若要删除左边的(V0,V2)这条边,需要对图下表的阴影两个结点进行删除操作. 2.邻接多重表的存储结构: iVex和jVex:是与某条边依附的两个顶点在顶点表中的下标. iLink:指向依 ...

  6. 数据结构之图的存储结构:邻接表法

    图的存储结构:邻接表法 产生条件: 邻接表法的定义: 邻接表法的特点: 邻接表法的代码定义: 邻接表法与邻接矩阵法的对比: 产生条件: 当用邻接矩阵存储时:空间复杂度为O(|v|^2),太大 邻接表法 ...

  7. 数据结构之图的存储结构:邻接矩阵法

    图的存储结构:邻接矩阵法 邻接矩阵法: 邻接矩阵的定义: 邻接矩阵存储无向图: 邻接矩阵存储有向图: 邻接矩阵存储网: 邻接矩阵法的性质: 邻接矩阵法的代码实现: 矩阵运算A的n次幂的含义: 性能分析 ...

  8. 数据结构之图的存储结构一及其实现

    图的存储结构 由于图的结构比较复杂,任意两个顶点之间都可能存在联系,因此无法以数据元素在存储区中的物理位置来表示元素之间的关系,即图没有顺序映像的存储结构,但可以借助数组的数据类型表示元素之间的关系. ...

  9. 数据结构之图的存储结构:十字链表法

    图的存储结构:十字链表法 思维导图: 产生条件: 十字链表法的定义: 十字链表法的代码定义: 性能分析: 思维导图: 产生条件: 当用邻接矩阵存储时:空间复杂度为O(|v|^2),太大 当用邻接表法存 ...

最新文章

  1. Chapter 5 带颜色的同心圆
  2. 兼顾隐私与权利,华为以“科技有道”,实现“隐私无价”
  3. 不属于前后端分离的Vue+Django的例子
  4. 微服务的好处与弊端_在云原生时代,就一定要用微服务吗?
  5. 利用C++实现自定义插件
  6. 在Ubuntu 上怎么连接装有iOS 7的iPhone或iPad
  7. java中删除特定后缀名文件
  8. C语言入门篇(二)指针的介绍和运用
  9. 我们总结了每个技术团队都会遇到的 4 个难题 1
  10. 网络远程控制原理及技术实现
  11. 西北工业大学软件学院大数据技术实验(二)
  12. 在数学的海洋中飘荡(转自Dahua的Blog)
  13. 中国体育明星商业价值综合指数孙杨、苏炳添、武大靖列前三位
  14. Jetson Xavier NX系统安装至 nvme 硬盘
  15. PLC控制电动机的顺序启动逆序停止
  16. 一对一网络课堂教室应用教程实例
  17. 国产系统下的DES,SM4工具,银河麒麟V10桌面系统,飞腾芯片
  18. AlphaZero:一种人类从未见过的智慧
  19. C++【入门】购买文具
  20. thingsboard集群docker swarm部署报getsockopt failed strangely: Operation not permitted

热门文章

  1. 年底了,小心这些现象。别再无动于衷
  2. 一天 6 个面试邀约,投一个约一个,挡不住!
  3. 一个程序员的逗逼瞬间(一)
  4. 代码检验方案:前端代码w3c校验
  5. 大寨鸿蒙系统的电器,华为传来两个好消息,鸿蒙OS大时代将于6月2日正式开启...
  6. 无监督学习 | 层次聚类 之凝聚聚类原理及Sklearn实现
  7. 这个方法无需旋转就可使得横轴坐标不重叠!
  8. 玉米转座子插入型突变体”五折优惠
  9. 样本分布不平衡,机器学习准确率高又有什么用?
  10. NOI入门级数学: 数及其运算 数的进制之二进制