数据结构与算法学习笔记——图(Graph)
什么是图:
无向图:可以理解QQ中的互加好友
无向图: 可以理解为微博中的关注
图的一些概念:
顶点:图中的元素(A,B,C,D....)
边: 图中的一个顶点可以与任意其他顶点建立连接关系,这种建立的关系就是边
度: 与顶点相连接的边的条数(无向图概念)(图一A的度就是3)
无向图: 边无方向的图
有向图: 边有方向的图
稀疏图(Sparse Matrix) : 顶点很多,但每个顶点的边并不多
带权图(weighted graph) 。在带权图中,每条边都有一个权重 (weight)
有向图的一些概念:
入度(In-degree) : 表示有多少条边指向这个顶点
出度(Out-degre) : 表示有多少条边是以这个顶点为起点推向其他顶点
图的存储:
邻接矩阵(Adjacency Matrix):
邻接矩阵的底层依赖一个二维数组。对于无向图来说,如果顶点 i 与顶点 j 之间有边,我们就将 A[i][j] 和 A[j][i] 标记为 1;对于有向图来说,如果顶点 i 到顶点 j 之间,有一条箭头从顶点 i 指向顶点 j 的边,那我们就将 A[i][j] 标记为 1。同理,如果有一条箭头从顶点 j 指向顶点 i 的边,我们就将 A[j][i] 标记为 1。对于带权图,数组中就存储相应的权重。
优点: 简单直观,
缺点:浪费空间
无向图,如:A[i][j] 和 A[j][i] 只需一个就行了。
稀疏图:顶点很多,但每个顶点的边并不多。
邻接表存储法:
每个顶点对应一条链表,链表中存储的是与这个顶点相连接的其他顶点。
邻接矩阵存储起来比较浪费空间,但是使用起来比较节省时间。相反,邻接表存储起来比较节省空间,但是使用起来就比较耗时间。
数据结构与算法学习笔记——图(Graph)相关推荐
- 数据结构与算法学习笔记——图 C++实现
数据结构与算法学习笔记--图 C++实现 1 概念 2 图的表示方法 3 算法 3.1 拓扑排序 3.2 图的搜索算法 3.2.1 广度优先搜索(BFS) 3.2.2 深度优先搜索(DFS) 3.3 ...
- 数据结构与算法学习笔记15:最大流问题 / 二分图 / 有权无权二分图的匹配 / 匈牙利算法 / 银行家算法 / 稳定婚配
数据结构与算法学习笔记15:最大流问题 / 二分图 / 有权无权二分图的匹配 / 匈牙利算法 / 银行家算法 / 稳定婚配 引入小题:最短路径 最大流问题(maximum flow problem) ...
- 数据结构与算法学习笔记之 从0编号的数组
数据结构与算法学习笔记之 从0编号的数组 前言 数组看似简单,但掌握精髓的却没有多少:他既是编程语言中的数据类型,又是最基础的数据结构: 一个小问题: 为什么数据要从0开始编号,而不是 从1开始呢? ...
- 数据结构与算法学习笔记之 提高读取性能的链表(上)
数据结构与算法学习笔记之 提高读取性能的链表(上) 前言 链表(Linked list)比数组稍微复杂一点,在我们生活中用到最常见的应该是缓存,它是一种提高数据读取性能的技术,常见的如cpu缓存,浏览 ...
- 数据结构与算法学习笔记——链栈
数据结构与算法学习笔记(C语言) 链栈 在开始链栈的学习之前,我们先实现一下上一篇文章中提到的检查括号匹配的小程序,鉴于水平有限,本人就随便写一下代码好了,目标仅限于对功能的实现. /*用顺序栈这种数 ...
- 数据结构与算法学习笔记4:递归+分治法
数据结构与算法学习笔记4 递归 斐波那契数列 青蛙跳台阶问题 链表倒序打印 分治法 二分查找/折半查找 Binary Search 题目1:快速幂 题目2:如何判断一个数是否为2的次幂 递归 指在函数 ...
- 数据结构与算法 学习笔记(5):字符串
数据结构与算法 学习笔记(5)- 字符串 本次笔记记录了LeetCode中关于字符串的一些问题,并给出了相应的思路说明和代码.题目编号与LeetCode对应,方便查找. 题目1:LeetCode 13 ...
- 数据结构与算法学习笔记之先进先出的队列
前言 队列是一种非常实用的数据结构,类似于生活中发排队,可应用于生活,开发中各个方面,比如共享打印机(先请求先打印),消息队列.你想知道他们是怎么工作的么.那就来一起学习一下队列吧 正文 一.队列的定 ...
- 数据结构与算法 学习笔记(8):字典、集合、哈希表
数据结构与算法 学习笔记(8):字典.集合.哈希表 本次文章记录的是和字典.集合.哈希表等数据结构相关的LeetCode算法题(题号与LeetCode对应),包括其构造和使用,针对每一题或一类题给出了 ...
最新文章
- Spring自学教程-ssh整合(六)
- cpout引脚是干什么的_电源IC欠压保护(Brown-out)功能介绍
- [汇编语言]-第十章 ret,retf,call指令
- java:十六进制转十进制
- Spring AOP基础—JDK动态代理
- 四层负载均衡和七层负载均衡的区别
- 各hadoop安装的收集
- mysql 5.5 主从同步_Windows下mysql5.5主从同步
- Myeclipse 更改web项目的访问名
- 视觉传达对中职计算机教育影响,自考视觉传达设计毕业论文:平面设计专业信息化教学资源库建设...
- 鼠标点击改变单元格颜色或点击改变行颜色
- 深入 Java 调试体系: 第 1 部分,JPDA 体系概览
- linux bind 源码,rpcbind 源码 分析
- vim打开文件时显示行号
- 用Visio画软件(模块)功能图
- svn process exited with error code: 1
- windows核心编程--2、windows的画笔画刷以及一些简单的应用
- 单台计算机 双ip设置,单网卡设双IP也有优先级
- 【SQL基础】SQL常用函数简要解析
- pdf转换成word转换器在线