1. 定义

在图结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。

2. 与线性表、树结构的区别

3. 相关定义

(1)无向、有向

与图边或者弧相关的数字叫做权(Weight),带权的图通常称为网(Network)

(2) 图的顶点与边间的关系

无向图:

边数等于各顶点度数和的一半(因为重复两次计数)

有向图:

注意:

【1】图中顶点与顶点之间的路径并不是唯一的

【2】

【3】

(3)连通图相关术语

1无向连通图

【2】连通分量

注意这里极大的含义,是指能连通的最大结点。非连通图也可能含有连通分量!!

此:图1有两个连通分量(图2与图3),图3满足极大顶点数(没有顶点能再与其连接),图4不满足极大定点数(还有D能与其相连)

【3】有向图(每一对顶点)

怎么理解??

【4】连通图的生成树

但是n-1条边并不一定是生成树

4. 图的抽象数据类型

5. 图的存储结构(共有五种不同的存储结构)

(1)邻接矩阵

【1】无向图

注意:矩阵主对角线的值全为0,因为不存在顶点到自身的 边

无向图的边数组是一个对称矩阵(以从左上角到右下角的主对角线为轴)

规律:

【2】有向图

【3】网

代码实现

创建网

缺点:对于边数相对于顶点较少的图,该结构存在对存储空间的极大浪费

(2)邻接表

【1】无向图

【2】有向图

容易得到每个顶点的出度。

有时为了确定顶点的入度或以顶点为弧头的弧,可以建立一个有向图的逆邻接表。

【3】带权重的网图

【4】实现代码:

结点定义代码

无向图邻接表创建

代码中使用了头插法

对于无向图:

缺点:

(3)十字链表(适用于有向图)

(4)邻接多重表(无向图)

具体实现:

邻接多重表与邻接表的差别,仅仅是在于同一条边在邻接表中用两个结点表示,而在邻接多重表中只有一个结点。

(5)边集数组

转载于:https://www.cnblogs.com/GuoXinxin/p/10153049.html

大话数据结构 -07-1 图的定义、抽象数据类型与存储结构相关推荐

  1. 从零开始学数据结构和算法(二)线性表的链式存储结构

    链表 链式存储结构 定义 线性表的链式存储结构的特点是用一组任意的存储单元的存储线性表的数据元素,这组存储单元是可以连续的,也可以是不连续的. 种类 结构图 单链表 应用:MessageQueue 插 ...

  2. 数据结构之线性表——(二、链式存储结构)[c语言]

    数据结构之线性表--(二.链式存储结构-单链表) 链式存储结构以及基本运算的实现 背景:由于线性表的存储特点是用物理上的相邻实现逻辑上的相邻,他要求用连续的存储单元顺序存储线性表中的各个元素,所以,对 ...

  3. 大话数据结构16:图

    基础介绍 图的数据结构 图主要由顶点和边组成 无向边用() 有向边用<> 入度: 一顶点V为头的弧的数目为入度, 出度: 以其为尾的数目为出度. 连通图 连通图生成树 图的定义与术语总结 ...

  4. c语言 数据结构 list、queue、tree抽象数据类型的定义与实现 详尽代码和注释

    本文使用c语言定义并实现list.queue.tree抽象数据类型,代码有详尽注释,可以通过代码熟悉原理并运用数据结构. 0.ADT基础知识 类型包括两类信息,属性和操作.在编程时,根据编程问题匹配合 ...

  5. (王道408考研数据结构)第四章串-第一节:串的定义和基本操作及存储结构

    文章目录 一:串基本概念 (1)串的定义 (2)相关术语 (3)串的基本操作 二:串的比较 三:字符集编码 四:串的存储结构 (1)串的顺序存储 (2)串的链式存储 一:串基本概念 (1)串的定义 串 ...

  6. 【数据结构】树与树的表示、二叉树存储结构及其遍历、二叉搜索树、平衡二叉树、堆、哈夫曼树与哈夫曼编码、集合及其运算

    1.树与树的表示 什么是树? 客观世界中许多事物存在层次关系 人类社会家谱 社会组织结构 图书信息管理 分层次组织在管理上具有更高的效率! 数据管理的基本操作之一:查找(根据某个给定关键字K,从集合R ...

  7. 6.2 二叉树的定义、性质与存储结构

    0. 引子 1. 二叉树的定义 2. 二叉树的性质 3. 二叉树的存储结构 (1) 树的表示法 通常,像树.图.栈.队列等数据结构下数据的存储表示,都是基于线性表.线性表有两种结构:[顺序存储结构和链 ...

  8. 【数据结构】 实验报告10 顺序、链式存储结构的二叉树递归遍历、层次遍历求高度

    一.实验目的和要求 (源码在最后) 要求: 两种及以上存储结构(建议 顺序存储结构和链式存储结构各一).两种及以上方法(建议 递归遍历和层次遍历方法各一).分析各代码性能. 抽象数据类型(二叉树)独立 ...

  9. 队列定义、队列的存储结构

    队列定义 队列(queue )简称队,它同堆栈一样,也是一种运算受限的线性表, 其限制是仅允许在表的一端进行插入,而在表的另一端进行删除. 在队列中把插入数据元素的一端称为 队尾(rear) ),删除 ...

最新文章

  1. CES上百度无人车队炫技,陆奇要用“China speed”改变世界
  2. 如果让学生轻松过关,他们就对老师心存轻蔑
  3. [译]ava 设计模式之享元
  4. C# winform treeview节点重命名
  5. 在Windows下基于libx264.a的Qt 4.8.2视频压缩
  6. spring autowired idea都匹配上了_你清楚这几个Spring常用注解吗?
  7. MySQL事务处理与事务隔离(锁机制)
  8. JAVA入门[22]—thymeleaf
  9. OSS网页上传和断点续传(OSS配置篇)
  10. JQuery选择器跨frame和层次选择
  11. 利用.bat批处理命令进行文件复制粘贴备份
  12. 26款Java开源项目,劝你千万别错过,适合所有程序员
  13. 图解CSS3 读书笔记——边框
  14. 知识图到文本的生成(十一)
  15. linux如何使用ntfs格式的优盘
  16. 单片机流星灯_51单片机流星灯c语言源程序
  17. 华为手机备忘录,到底有多好用?花粉看完,纷纷点赞
  18. 奥塔在线:Centos下使用rpm方式安装crontab服务
  19. 低代码平台,企业服务新战场
  20. 南方QDII基金今起网上申购 公司高管均打算认购

热门文章

  1. 拳王虚拟项目公社:虚拟资源知识付费怎么玩?如何做知识付费?知识付费如何赚钱?
  2. php pcre回溯攻击,PHP利用PCRE回溯次数限制绕过某些安全限制 | 码农网
  3. php png缩放,PHP实现对png图像进行缩放的方法(支持透明背景)
  4. 下列关于线程调度的叙述中,错误的是()。
  5. c++ 高效解析url算法
  6. 我的docker随笔10:docker客户端使用其它主机的docker服务器
  7. 解决h264bitstream的一个bug
  8. bootstrap table传回的数据后端怎么获取_基于 Spring Cloud 开发的分布式系统,遇到爬虫、接口盗刷怎么办
  9. 【hortonworks/registry】registry 如何添加新的类型 支持 json
  10. 【redis】Redis简介