`
jinghuainfo
  • 浏览: 1525290 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

数据结构_串_用链表做存储结构实现KMP算法_C++实现

 
阅读更多

写这个纠结了很久,老是会有某个环节出问题。先是在处理串的结束标志的问题上,老是会跟其他的判断条件冲突造成提前退出,而且无论主串和模式串情况如何结果总是succeed,尝试了好几种方法,包括将其链接成单循环链表等,效果总是不太理想,后来就想到了临时new一个变量,用完之后再delete掉,结果由于多写了一个delete老是报错,后来才发现在ReMove函数中已经delete掉了。然后就是GetNext()和KMP()处理上有点小问题,有一些细节没有处理好。后来在纸上做了下模拟,也慢慢调过来了,贴出来分享一下,如有错误,欢迎指正。


"head.h"





"main.cpp"




分享到:
评论

相关推荐

    利用C++实现以下经典数据结构算法:线性表、栈、队列、数组(特殊矩阵、稀疏矩阵压缩)、串(朴素模式匹配、KMP算法)、树.zip

    利用C++实现以下经典数据结构与算法:线性表(顺序表、链表、静态链表、三元组)、栈(双栈、共享栈)、队列(任务调度、循环队列、双向队列、链队列)、数组(特殊矩阵、稀疏矩阵压缩)、串(朴素模式匹配、KMP算法...

    严蔚敏版《数据结构》代码实现

    这些代码主要是针对严蔚敏老师的《数据结构》一书中的大部分伪代码编辑的代码,能够正常运行,是基于C++编写的代码,包括,数组线性表,链表线性表、双向链表、顺序栈、链栈、链队列,顺序队列,循环队列、KMP算法、...

    数据结构(C++)有关练习题

    31 习题9 排序------------------------------------------------------------------------------------34 第1部分 C++基本知识 各种数据结构以及相应算法的描述总是要选用一种语言工具。在计算机科学...

    数据结构演示软件

    本课件是一个动态演示数据结构算法执行过程的辅助教学软件, 它可适应读者对算法的输入数据和过程执行的控制方式的不同需求, 在计算机的屏幕上显示算法执行过程中数据的逻辑结构或存储结构的变化状况或递归算法执行...

    循环链表算法.zip

    常见的字符串匹配算法包括暴力匹配、KMP算法、Boyer-Moore算法等。 这些是计算机科学中常见的算法类型,每种算法都有不同的应用场景和解决问题的方法。在实际编程中,选择合适的算法对于提高程序效率和性能至关重要...

    双向链表算法.zip

    常见的字符串匹配算法包括暴力匹配、KMP算法、Boyer-Moore算法等。 这些是计算机科学中常见的算法类型,每种算法都有不同的应用场景和解决问题的方法。在实际编程中,选择合适的算法对于提高程序效率和性能至关重要...

    C++代码(《数据结构》)。

    这些代码主要是针对严蔚敏老师的《数据结构》一书中的大部分伪代码编辑的代码,能够正常运行,是基于C++编写的代码,包括,数组线性表,链表线性表、双向链表、顺序栈、链栈、链队列,顺序队列,循环队列、KMP算法、...

    公交车查询系统(C语言实现)

    本程序主要使用C++语言完成,主要是运用了常用的数据结构,比如:链表、栈、队列、图等数据结构,也用了一些数据结构上的经典算法,比如KMP,迪克斯特的最短路径算法。本程序的关键部分都用注释,并且配有Readme.txt...

    leetcode中国-DataStructure:数据结构与算法的学习basepython/c++

    数据结构与算法 从四月份开始正式的断断续续刷题,有过迷茫,有过崩溃,有过看不清脚下的路,有过陷在众多知识点里的迷惑。 也想过自己是不是真的就刷不好题了,这么多知识点我是不是真的就无法弄懂了,为什么一个...

    收集的C++常用算法.cpp文件,大部分可运行

    本.cpp代码主要是收集了一些常用的C++算法相关内容,关键地方都已标记注释,比如链表数据、尾插法利用一个动态指针、迭代斐波那契、循环队列、KMP模式匹配算法,二叉树二叉链表节点结构定义、二叉排序树查找、平衡...

    高级java笔试题-Lookoop:学习笔记

    数据结构与一些算法,来自算法导论,数据结构与算法分析-C语言描述,C Primer Plus, 数据结构-python描述,博客 ADT链表(c)-抽象链表实现 geometry(c++)-Andrew's Monotone Chain Algorithm Graph (python)-拓扑...

    leetcode中国-leetcode_algo:leetcode相关算法和模板使用python

    链表与邻接表:树与图的存储 栈与队列:单调队列、单调栈 kmp Trie 并查集 堆 Hash表 C++ STL使用技巧 搜索与图论 —— 代码模板链接 常用代码模板3——搜索与图论 DFS与BFS 树与图的遍历:拓扑排序 最短路 最小生成...

    leetcode2sumc-CodeTraining:算法、C++、Python

    目标:熟悉算法以及C++和python日常训练 链表(leetcode) # 标题 困难 206 反向链表 简单的 92 反向链表 II 中等的 160 两个链表的交集(solve1) 简单的 160 两个链表的交集(solve2) 简单的 142 链表循环 II(solve1)...

    全面的算法代码库

      这里有各种算法的C++代码,任何人可以在自己的任何程序中使用,欢迎大家指出代码中的错误以及有待改进的地方。   本仓库内所有代码的授权方式为Unlicense,大家如果使用我的代码开发自己的软件挣了大钱,或是...

    leetcode卡-leetcode:每日算法练习

    1.先完成卡片上的进度,熟悉基础的数据结构(堆,队列,hash表,链表,树等)。 对常见算法(归并,双指针,二分查找,贪心算法等)有一定了解。 2.找一些经典的题,先想想思路,多想想试试做一下,然后看题解照着多写死...

    算法基础课程:算法备赛学程

    2.数据结构链表与合并表:树与图的存储栈与实例:单调、、单调栈kmp Trie并查集堆Hash表C ++ STL使用技巧 3.搜索与图论 DFS与BFS树与图的遍历:拓扑排序最短最小最小生成树 4.数学知识 质数约数欧拉函数快速幂扩展...

    leetcode2sumc-coding:用C++编码

    ###数据结构和算法 大批 加一: # 合并排序数组:# 排序 搜索 二分查找:代码、#、#、# 选择 数组中第 K 个最大元素:# 递归 排列:#、# 哈希 二和:# 同构字符串:# 注意:构建堆,O(n); 提取根并重建 O(logn) 从...

    leetcode分类-LeetCode:力码

    leetcode 分类 LeetCode 此项目为找工作期间练习的题目,来自 所推荐的 LeetCode 上经典题目。分类包括: 数组(循环不变量、对撞指针和滑动窗口) ...语言实现,后续复习打算再使用 C++ 语言实现一遍。 Cpp 待续...

Global site tag (gtag.js) - Google Analytics