数据结构C++版-图
一、概念及分类






二、图的存储结构

1、邻接矩阵
顶点:

弧:

边:

表达式语句:


2、邻接表


逆邻接表:


3、十字链表


4、邻接多重表


三、图的权值概念及遍历
权值:

图的遍历:

1.深度优先搜索

2.广度优先搜索

3.图的最小生成树

1)普利姆算法



2)克鲁斯卡尔算法:





四、补充知识点
1、课程下某评论:
给我最深的感触是:
1. 先用中文把代码思路写出来,然后一个一个去编写;
2. 先想清楚函数结束的条件;
3. 如果编写过程中,遇到一些难以解决的小功能,就先把它函数化,之后再补全这个函数;
2、如何准备算法及面试
除了日常进行算法练习外,对于找工作的小伙伴们来说,如何在面试过程中更好地在算法环节脱颖而出还是有迹可循的。从九章算法那可以总结如下:
1.面试过程要有适当的沟通
2.听到问题后要讲自己的理解
3.与面试官沟通题目的细节
4.告诉面试官自己的想法或算法
虽说练习算法偏向于算法本身,但是好的代码风格还是很有必要的。粗略可分为以下几点:
代码块可为三大块:异常处理(空串和边界处理),主体,返回
代码风格(可参考Google的编程语言规范)
1.变量名的命名(有意义的变量名)
2.缩进(语句块)
3.空格(运算符两边)
4.代码可读性(即使if语句只有一句也要加花括号)
《代码大全》中给出的参考
而对于实战算法的过程中,我们可以采取如下策略:
1.总结归类相似题目
2.找出适合同一类题目的模板程序
3.对基础题熟练掌握
数据结构C++版-图的更多相关文章
- 数据结构Java版之广度优先图(十三)
广度优先,则是用的队列,将每一层的节点先存入队列中去,后依次取出队列中的节点,显示与当前节点存在边,但是未被访问过的节点,也就是下一层与之相联系的节点,再将这些节点存入队列.经过层层迭代,就可以完全遍 ...
- 数据结构Java版之深度优先-图(十二)
这里用深度优先遍历存在矩阵里面的图. 深度优先利用的是栈的FIFO特性.为此遍历到底后,可以找到最相邻的节点继续遍历.实现深度优先,还需要在节点加上一个访问标识,来确定该节点是否已经被访问过了. 源码 ...
- 数据结构Java版之邻接矩阵实现图(十一)
邻接矩阵实现图,是用一个矩阵,把矩阵下标作为一个顶点,如果顶点与顶点之间有边.那么在矩阵对应的点上把值设为 1 .(默认是0) package mygraph; import java.util.Li ...
- 数据结构Java版之邻接表实现图(十)
邻接表实现图,实际上是在一个数组里面存放链表,链表存放的是连接当前节点的其他节点. package mygraph; import java.util.ArrayList; import java.u ...
- 用js来实现那些数据结构15(图01)
其实在上一篇介绍树结构的时候,已经有了一些算法的相关内容介入.而在图这种数据结构下,会有更多有关图的算法,比如广度优先搜索,深度优先搜索最短路径算法等等.这是我们要介绍的最后一个数据结构.同时也是本系 ...
- 用js来实现那些数据结构16(图02-图的遍历)
上一篇文章我们简单介绍了一下什么是图,以及用JS来实现一个可以添加顶点和边的图.按照惯例,任何数据结构都不可或缺的一个point就是遍历.也就是获取到数据结构中的所有元素.那么图当然也不例外.这篇文章 ...
- 【C#数据结构系列】图
一:图 图状结构简称图,是另一种非线性结构,它比树形结构更复杂.树形结构中的结点是一对多的关系,结点间具有明显的层次和分支关系.每一层的结点可以和下一层的多个结点相关,但只能和上一层的一个结点相关.而 ...
- 数据结构思维导图 Part1
刚刚结束数据结构的学习,在复习阶段,所以做来思维导图总结一下. 思维导图,顾名思义是应该有对思维有引导作用的,就像思维的整理术,然而想要学好什么,光看思维导图总是不够的. 树与图作为两个复杂非线性结构 ...
- 数据结构&图论:图
在这里对图的存储和遍历进行一个规范,为以后更复杂的数据结构学习打下基础 首先是邻接矩阵的形式,适合于存稠密图,如果是全连接图就再合适不过了 int a[maxn][maxn]; 一个二维数组就可以搞定 ...
随机推荐
- CTSC2019
(upd:随机立方体AC) 太菜了只会部分分.以后慢慢补坑吧…… 随机立方体: 30分: 正常人都能想到的的转移状态(我的确是弱智),从大往小填数,记录有多少个极大值点和三个方向上各占了多少.转移可以 ...
- js设计模式——7.备忘录模式
js设计模式——7.备忘录模式 /*js设计模式——备忘录模式*/ // 备忘类 class Memento { constructor(content) { this.content = conte ...
- checkbox、radio使用jquery改变状态以及其他操作
$('input[type=checkbox]:checked').each(function(index,elem){ $(elem).attr("checked",false) ...
- Elasticsearch介绍和安装与使用
转载:https://blog.csdn.net/weixin_42633131/article/details/82902812 1.Elasticsearch介绍和安装 1.1.简介1.1.1.E ...
- 18、Page Object 设计模式
Page Object 设计模式的优点如下: 减少代码的重复. 提高测试用例的可读性. 提高测试用例的可维护性, 特别是针对 UI 频繁变化的项目. 当你针对网页编写测试时,你需要引用该网页中的元素, ...
- 调试口:JTAG与SW-Debug Port
- IntelliJ快捷键记录
1.自动补全返回类型及变量:Ctrl+Alt+V2.大小写转换:Ctrl+Shift+U3.get/set方法快捷键:Alt+Insert4. 查看类继承关系:Ctrl+H或者Ctrl+Shift+A ...
- git 强制取消本地修改
本地的项目中修改不做保存操作,可以用到Git pull的强制覆盖,具体代码如下: git fetch --allgit reset --hard origin/master git fetch 指令是 ...
- c程序查找字符出现次数
#include <stdio.h> int main(){ char str[100],ch,M,Empty; int i, frequency = 0; fgets(str, (siz ...
- CentOS系统制作RPM包
打包编译好的命令,即可直接安装使用 #使用yum可解决依赖问题 [root@localhost ~]# yum -y localinstall *.rpm 一.使用fpm工具直接打包. Fpm安装 f ...