数据结构和算法
数据结构和算法的学习
Huberyxiao
下一站,还在前方
展开
-
单源最短路径-Dijkstra算法
写在前面:好久没看图论了,今天写作业的时候发现我已经忘记了。俗话说的好,好记性不如烂笔头,我翻了翻之前的笔记,竟然没有关于Dijkstra的(手动狗头)。赶紧连夜写了一篇博客,只为勾引我对Dijkstra的些许记忆。单源最短路径-Dijkstra算法从一个顶点到其余各顶点的最短路径算法,解决的是有权图(不存在负权边)中最短路径问题1.算法思想它是由E.W.Dijkstra提出的一种按照路径长度递增的次序分别产生到各顶点最短路径的贪心算法。 &nbs.原创 2020-12-21 02:50:47 · 942 阅读 · 0 评论 -
线索二叉树
线索二叉树:我们把指向前驱和后继的指针称为线索,加上线索的二叉树,就是对应的线索二叉树。线索化:对某二叉树以某种次序遍历使其变为线索二叉树的过程。线索化二叉树的目的:把树中所有结点未利用的指针空间进行利用。减少空间浪费。我们来具体看看线索化的过程:我们以这个图为例,进行中序遍历的线索化。(中序遍历的顺序:HDIBJEAFCG)在中序遍历的过程中,我们将所有空指针域中的rchild(右孩...原创 2020-04-20 16:19:53 · 286 阅读 · 0 评论 -
KMP算法----代码实现篇
通过学习kmp的思想和实现步骤,我们已经初步理解了kmp算法的运行过程,那么接下来必然要学会代码实现。现在,进行代码实现吧!kmp主要就是两步:第一步,求出前缀表,也就是常说的next数组;第二步,进行具体的匹配过程。首先,我们一起来用代码解决kmp算法中的前缀表吧!我们再次回顾前缀表的构建方法(请移步到我们上一篇博客: KMP算法—讲解篇)。这次我们会和上次讲的前缀表建立有一点点...原创 2020-04-11 19:47:08 · 2378 阅读 · 3 评论 -
KMP算法----讲解篇
众所周知,KMP算法是字符串匹配算法。那么首先,我们来看看一般字符串匹配算法的过程:一般字符串匹配算法(暴力匹配)如图。两个字符串T和P,我们传统做法便是这样:1.首对齐,一个一个对比,碰到了不匹配的:2.待检测字串往后移一个,再重复同样的事情:到现在,我们用一般匹配算法(暴力匹配)完成了这个字符串匹配过程。我们总结一下一般匹配算法:暴力算法匹配过程中,我们首先...原创 2020-04-09 22:42:09 · 528 阅读 · 4 评论 -
二叉树的遍历方法
二叉树的遍历是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问且被访问一次。二叉树的遍历方法1.前序遍历规则是若二叉树为空,则空操作返回,否则先访问根结点,然后前序遍历左子树,再前序遍历右子树。如图所示。(有点类似于DFS)下面我们来看看它的算法实现实现二叉树的前序遍历算法:void PreOrderTraverse(BiTree T){ if(T==NU...原创 2020-04-01 09:39:54 · 219 阅读 · 0 评论 -
树的三种表示法:双亲表示法、孩子表示法、孩子兄弟表示法
抽象数据类型:树的存储结构:利用顺序存储和链式存储的特点,完全可以实现对树的存储结构的表示。介绍三种不同的表示法:双亲表示法、孩子表示法、孩子兄弟表示法。1.双亲表示法我们假设以一段连续空间存储树的结点,同时在每个结点中,附设一个指示器指示其双亲结点到链表中的位置。也就是说,每个结点除了直到自己是谁外,还要直到自己的双亲在哪里。如图:其中data就是数据域,存储结点的信息。而paren...原创 2020-03-25 13:48:52 · 22231 阅读 · 1 评论 -
广搜(BFS)
广度优先搜索——层层递进广搜是最简便的图搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。思想:一层一层往外扩散广度优先搜索较之深度优...原创 2020-03-23 18:07:43 · 6231 阅读 · 2 评论 -
深搜(DFS)
深度优先搜索——不撞南墙不回头深搜是作为一种遍历或搜索图和树的算法。思想:不撞南墙不回头!首先选取一个未访问的点作为源节点。从源节点选取一条路一直往下走,沿着当前顶点的边,访问这条路线,直到走不下去为止。这时返回上一顶点,继续试探访问此顶点的其余子顶点,直到当前顶点的子顶点都被访问过,那么,返回上一顶点,继续重复。从而实现遍历。来个简单的例子模拟DFS的过程:(首先,我们默认优先选择...原创 2020-03-21 21:13:03 · 8537 阅读 · 12 评论