![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
主要记录学习数据结构与算法的知识
nihao_t
这个作者很懒,什么都没留下…
展开
-
数据结构-二叉树的遍历
二叉树的遍历 1、遍历类型:前序遍历(①访问根节点②前序遍历左子树③前序遍历右子树)、中序遍历(①中序遍历左子树②访问根节点③中序遍历右子树)、后序遍历(①后序遍历左子树②后序遍历右子树③访问根节点) 2、核心思想是:逐步分解,每次以一棵(子)树为单位;当退回来的时候则以该子树为上一级子树的一部分,对上一级子树按照遍历规则来完成为遍历的部分 3、方法:①前序遍历的第一个为整棵二叉树的根节点(后序遍历则是最后一个为整棵树的根节点)②按照中序遍历来,根的左边为左子树,右边为右子树 例子:(考根据前序或者后序+原创 2020-07-18 10:46:36 · 347 阅读 · 0 评论 -
KMP算法-字符串的模式匹配
KMP算法-字符串的模式匹配 思想=>(分析算法思想的方法) 目的:解决回溯问题; 方法:计算出该回到哪个位置 具体为 主串S[i],模式T[j],next[j],k 计算相应位置对应移动的步数的数组next[j] 当j=0,next[j]=-1(为了方便计算,目前没搞懂为什么) 当j=1,next[j]=0 当j>1,next[j]={k|1<=k<j且T[0]…T[j-k]=T[j-k]…T[j-1]} 主要算法,进行匹配 输入:主串、模式、next数组 输出:第一次匹配的位置原创 2020-07-14 11:50:26 · 147 阅读 · 0 评论 -
BM算法-字符串匹配算法
BM算法-字符串的模式匹配(一般情况下比KMP更高效的匹配算法) 思想:使用启发式规则,通过每次的失败的匹配尝试,算法都能根据这些信息来排除尽可能多的无法匹配的位置(为什么说是每次呢,因为每次的情况可能不一样,通过信息来跳过启发式规则的得到的步数) 目的:利用启发式规则,尽可能多跳过无法匹配的位置,从而达到更高的效率 方法:坏字符规则和好后缀规则,取其中移动步数较多的 坏字符规则: 1、当每轮匹配的时候,第一次出现模式串和主串不匹配的位置,在主串中对应位置的字符被成为坏字符。 2、遇到坏字符的处理方法: (原创 2020-07-14 11:27:15 · 334 阅读 · 0 评论