算法
Attention_0
这个作者很懒,什么都没留下…
展开
-
数据结构严薇敏——KMP算法之next数组优化代码实现
前面实现的next数组依然还有缺陷,当模式串中失配元素很多相同的前缀,有一部分的比较是不需要的。例如下面这种情况可以明显看出:因为模式串中第1、2、3个字符和第4个字符都相等,因此不需要要再和第四个字符比较,而可以直接进行i = 5, j = 1时的字符比较,这里就是需要优化的部分。 实现代码:#include <stdio.h>#include <std...原创 2018-07-31 09:13:52 · 400 阅读 · 0 评论 -
数据结构严薇敏——串的定义、操作(C语言)
串的三种存储表示:定长顺序存储结构、块链存储结构和堆分配存储结构。以下采用的是堆分配存储结构:它的数据类型定义为:typedef struct{ char *ch; int length; //串长度}HString;串的逻辑结构和线性表很相似,区别仅在于数据对象为字符集。然而,串的基本操作和线性表有很大的差别。在线性表中,大多数以“单个元素”作...原创 2018-07-29 19:28:30 · 1104 阅读 · 0 评论 -
数据结构严薇敏——简单二叉树的建立、先序、中序、后序递归遍历及求叶子结点数
采用二叉树的二叉链表存储表示它的存储结构为:typedef char ElemType;typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode;使用递归来实现下图中二叉树的建立、遍历、求叶子节点。实现代码:#include <stdio....原创 2018-07-31 18:43:00 · 1471 阅读 · 0 评论 -
C++实验——STL多项式加法
①编制多项式加法的类:例如若p1 = 2x6 + 3x4 + 5x2 + 6,p2 = 2x5 - 3x4 + 5x2 + 8,则p3 = p1 + p2 = 2x6 + 2x5 + 10x2 + 14。分析传统的做法:(1)多项式用list容器表示,容器内的每一个元素代表多项式中的每一项。设置多项式p1,p2,并使结果p3结果为空。(2)利用sort系统函数,使多项式p1,p2中...原创 2019-01-27 17:52:05 · 932 阅读 · 0 评论 -
循环队列的应用——约瑟夫问题
约瑟夫问题约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。又称“丢手绢问题”.)问题来历 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由...原创 2018-07-27 19:29:22 · 4124 阅读 · 0 评论