一、图的储存


邻接矩阵:

1.概念

  • 有向图:(i,j)之间1为两个顶点之间有通路,没有为0。
  • 无向图:同有向图,若(i,j)为1,则(j,i)也一定为1.
  • 网:(i,j)的值表示顶点i到顶点j的边的权,若就i与j之间没有边,值为无穷。
//邻接矩阵存储结构定义

2.补充复习C语言知识点:

struct和typedef struct

//结构声明:

我们可以把以上代码简化:

struct 

使用typedef:

typedef 

3.特点

  • 无向图的邻接矩阵一定是一个对称矩阵,在实际的存储中只需要存储一个三角。
  • 无向图,第i行(列)的非零元素的个数就是第i个顶点的度。
  • 有向图,第i行(列)的非零(非无穷)元素的个数就是第i个顶点的出度(入度)。
  • 稠密图比较适合邻接矩阵储存。

邻接表

1.概念

本质上是由顺序表加链表组成的,头指针和顶点的数据信息采用顺序存储(称为顶点表),然后对每一个顶点都建立一个单链表,单链表中的结点表示依附于顶点的边,这个单链表称为边表。

在邻接表中存在两种结点: 顶点表结点和边表结点

#define MaxVertexNum 100    

2.特点

  • 若G为无向图,则所需的存储空间为O(|V|+2|E|)。若G为有向图,则所需的存储空间O(|V|+|E|)。
  • 稀疏图用邻接表表示将极大地节省存储空间。
  • 图的邻接表不唯一

十字链表

1.概念:

有向图的一种链式存储结构。

数据结构无向图顶点的度c语言_图-储存及基本操作相关推荐

  1. 数据结构(廿六) -- C语言版 -- 图 - 图的遍历 -- 邻接表 - 深度/广度优先遍历/搜索(DFS、BFS)

    内容预览 零.读前说明 一.深度优先遍历 1.1.深度优先的遍历过程 1.2.深度优先的遍历实现代码 二.广度优先遍历 2.1.广度优先的遍历过程 2.2.广度优先的遍历实现代码 三.源码测试效果 3 ...

  2. 数据结构(廿五) -- C语言版 -- 图 - 图的遍历 -- 邻接矩阵 - 深度/广度优先遍历/搜索(DFS、BFS)

    内容预览 零.读前说明 一.概 述 二.深度优先遍历(DFS) 2.1.无向图的遍历过程 2.2.有向图的遍历过程 2.3.总结说明 2.4.实现源代码 三.广度优先遍历(BFS) 3.1.广度优先的 ...

  3. 数据结构源码笔记(C语言):栈的基本操作

    #include <stdio.h> #define MaxSize 100typedef char ElemType;typedef struct {char stack[MaxSize ...

  4. 数据结构源码笔记(C语言):二叉排序树的基本操作算法

    //二叉排序树的基本运算算法#include<stdio.h> #include<malloc.h>#define MaxSize 100typedef int KeyType ...

  5. 数据结构无向图的操作(C语言)

    目录 //1.含邻接矩阵的图结构 //2.创建邻接矩阵 //3.打印邻接矩阵 //4.邻接表的图结构 //5.创建邻接表 //6.打印邻接表 //7.深度优先搜索 //8.广度优先搜索 //9.带主函 ...

  6. 6-2 统计无向图中各顶点的度

    本题要求实现一个函数,统计无向图中各顶点的度. 函数接口定义: void degree(MGraph Graph,int *num); 其中,Graph为采用 邻接矩阵作为存储结构的无向图,函数deg ...

  7. 数据结构源码笔记(C语言描述)汇总

    数据结构源码笔记(C语言):英文单词按字典序排序的基数排序 数据结构源码笔记(C语言):直接插入排序 数据结构源码笔记(C语言):直接选择排序 数据结构源码笔记(C语言):置换-选择算法 数据结构源码 ...

  8. 数据结构源码笔记(C语言):英文单词按字典序排序的基数排序

    //实现英文单词按字典序排序的基数排序算法#include<stdio.h> #include<malloc.h> #include<string.h>#defin ...

  9. 数据结构源码笔记(C语言):索引文件建立和查找

    //实现索引文件建立和查找算法#include<stdio.h> #include<malloc.h> #include<string.h> #include< ...

最新文章

  1. Pycharm中使用github
  2. joomla3.6.5 nginx下 前台页面404错误
  3. python实现websocket服务端
  4. Jenkins+ant+Jenkins接口持续集成测试配置
  5. 如何使用 C# 压缩单个文件?
  6. Web前端行业的机遇与自我规划,如果你对未来没有方向 不如看一看,或许就是一道曙光!
  7. Javascript里使用Dom操作Xml
  8. vue在线聊天系统源码
  9. 解决小目标检测问题的几个途径
  10. c语言语句的机器级表示实训,深入理解计算机系统(笔记):程序的机器级表示...
  11. podman 在 windows 安装
  12. 计算机考研2022大纲,2022计算机408考研大纲
  13. 基于Linux下的英英词典
  14. php得到当前时间戳,php获取当前时间戳的方法
  15. win7取消计算机密码怎么设置,Windows7取消开机密码怎么设置_Win7怎么取消开机密码?-192路由网...
  16. 学设计的考PMP证书有用吗?
  17. 利用random解决三色球问题
  18. 单基因gsea_10个细胞系仅1个表达你的基因
  19. python做个奶茶店程序
  20. 手机只会用来打游戏?看看这五款APP,让你办公电脑学习无所不能

热门文章

  1. 设置Java JDK的默认编码为UTF-8
  2. 互联网资讯简报2019-05-14
  3. 常用移动web开发框架
  4. filebeat + es 日志分析
  5. 对过去css+div的总结
  6. 微软超融合私有云测试11-SCVMM2016部署之添加Hyper-V集群
  7. non-overlapping-intervals
  8. svn: E180001: Unable to open an ra_local session to URL问题解决方案
  9. 基于Spring MVC的ECharts动态数据实时展示
  10. log4j和logback的冲突导致日志输出异常