- 博客(13)
- 收藏
- 关注
原创 大话数据结构---(六)拓扑排序
1.拓扑排序说了两个有环的图应用,现在我们来谈谈无环的图应用。在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们称为AOV网(Activity On Vertex Network)。设G=(V,E)是一个具有n个顶点的有向图,V中的顶点序列V1,V2…Vn,满足若从顶点Vi到Vj有一条路径,则在顶点序列中顶点Vi之前。则我们称这样的顶点序列...
2020-03-31 20:31:36 900
原创 大话数据结构---(六)最短路径算法
和介绍最小生成树的两种方法不同,最短路径的两种方法:Dijkstra算法和Floyd算法,我打算直接用代码的形式来讲解,也会配上相应的示例,但不会一步步分析过程,重在掌握其思想,并能自己写出代码。
2020-03-31 17:39:34 1008
原创 大话数据结构---(六)最小生成树
之前我们了解了图的深度优先遍历和广度优先遍历。作用是在不重复经过同一点的情况下,遍历所有点。细心的人可能会发现,这些图中两点间的路径值是一样的,也就是没有权值。这里我们可以将问题再复杂点,如果给每条边赋上权值,该怎样连接结点,才能使连接的总路径最短---最小生成树,这就是本篇文章要介绍的内容,以及两种获得最小生成树的方法,普利姆算法和克鲁斯卡尔算法。
2020-03-31 12:51:19 864
原创 大话数据结构---(六)图的深度优先遍历和广度优先遍历
我们已经掌握了如何存储图中的信息,即邻接矩阵,邻接表,十字链表等。那么我们该如何利用这些存储结构中的数据呢,或者说我该如何找到我想要的数据呢,这里我们就得学会如何遍历图结构,而接下来会和大家介绍两种常用的遍历方法,深度优先遍历和广度优先遍历。
2020-03-30 20:55:45 16887 3
原创 大话数据结构---(六)图的前期准备
如果学完树那章,觉得概念比较多记不住,那么图这章。。。请君保重!这里不会过于详细的介绍概念,课本上都有,只会大致罗列这些概念的关系,便于记忆。
2020-03-30 15:20:10 875
原创 大话数据结构---(五)二叉树
1.二叉树的基本概念二叉树是n个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。二叉树特点(1)每个结点最多有两棵子树。(2)左子树和右子树是有顺序的,次序不能任意颠倒。(3)即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。特殊二叉树满二叉树:如果所有分支结点都存在左子树和右子树,并且所有叶子都...
2020-03-28 12:50:23 1219
原创 大话数据结构---(五)二叉树的来由
小编想提前说明一点,这篇文章并不会像教课书那样的强调概念,只会介绍一些比较重要或常见的定义。小编更看重的是树的原理以及如何更好的理解它,到最后能灵活运用。
2020-03-27 19:35:04 1123
原创 大话数据结构---(四)KMP算法
看了很多KMP的相关资料,也看了一些博客,众说纷纭,说法其实大部分都没有错,只是理解角度不同。这也使得一些初学者由本来的一知半解,看了半天,到最后一头雾水。小编则是如此,折腾了一下午,才有话可说,这里就直奔主题吧。1.KMP模式匹配算法原理如果主串S=“abcdefgab”,我们要匹配的T=“abcdex”,那么如果用朴素算法的话,前5个字母,连个串完全相等,直到第6个字母,“f”与“x”不...
2020-03-24 21:29:25 1114
原创 AI贪吃蛇的N种死法及通用解法
1.简要介绍:在一个n*m的网格面板里,面板里有一些障碍物,面板周围是墙壁。起始长度为3的蛇,会通过游走不断进食豆子,每吃一个豆子,身子长度也会加1。当蛇吃完当前面板里的所有豆子后,面板会重新刷新十个豆子,且豆子不会刷新在蛇身上或障碍物上,蛇身长度越长,获胜的几率越大。蛇的行走方向只能是上,下,左,右,每次行进一格,且蛇身除了蛇尾一小格,均视为障碍物。易得知,随着蛇身长度增加,暴毙概率也会大大增...
2020-03-23 18:04:58 3762 2
原创 大话数据结构---(三)栈与队列
人生,就像是一个很大的栈演变。出生时你赤条条地来到人世,慢慢长大,渐渐地变老,最终还得赤条条地离开世间。人生,就像是一个大大的队列演变。无知童年、快乐少年、稚嫩青年、成熟中年、安逸万年。
2020-03-21 17:45:28 1018
原创 大话数据结构---(二)线性表详解
看到线性表,小编第一联想到的是数组,因为数组内元素的内存地址是线性存储的,可以说是一条直线了。可线性表又分为线性存储结构和链式存储结构,刚开始并不明白,既然是“线性”表那为什么还可以是链式的。现在才搞懂,所谓线性,并不是对内存地址的描述。它是对数据的描述,你可以通过一根“线”遍历你需要的所有数据(不走回头路),而数组是既满足数据线性又满足地址线性的特殊线性表。
2020-03-20 21:19:44 943 1
原创 大话数据结构---(一)绪论
在真正进入数据结构的学习之前,小编觉得有必要先认识数据结构的基本概念,但这些基本概念并不会像书本上描述的那样晦涩难懂。因为小编现在也只是个初学者,在阅读了一些书籍之后,在这里以笔记的方式和大家分享
2020-03-19 20:23:09 868 1
原创 C++算法前笔记
C++复习笔记这是小编第一次尝试写博客,初来乍到,还请大家不吝赐教,非常感谢!看过一些C++教程,对于小编这样的初学者来说,好多知识自己在书写C++代码时很少用到,特别是写算法题前,所以下面介绍的是一些小编认为比较重要而又实用的知识点。1.基本语法C++相对于C而言,小编认为比较大的区别是C++引入了类和对象这两个概念,如果说C是面向过程的语言,那么C++就是面向对象的语言,这些对象通过调...
2020-03-17 17:57:41 1248 5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人