算法与数据结构
文章平均质量分 68
Anonymous-
。
展开
-
二叉树的先序、中序、后序(递归/非递归),层次遍历
树的链式存储结构:typedef struct BiTNode { Elemtype data; struct BiTNode *lchild, *rchild;}BiTNode, *BiTree;先序遍历(递归)void PreOrder(BiTNode T) { if (T != NULL) { visit(T); PreOrder(T->lchild); PreOrder(T->rchild); }}先序遍历(非递归)算法思想:从根结点开始,依次访问结原创 2021-01-26 16:28:45 · 222 阅读 · 0 评论 -
手算KMP算法nextval数组
上一篇文章介绍了手算KMP算法nextl数组。接下来就来介绍如何通过next数组求得nextval数组。通过上篇得到的next数组进行讲解.第一步:nextval数组的第一位必定为0;第二位模式串中元素的值如果与第一位相同则为0,不同为1。下标123456789模式串abaabcabanext011223123nextval01第二步:第 3 个元素的next值为 1 ,于是将其与下标为 1原创 2020-07-24 22:47:23 · 2401 阅读 · 0 评论 -
手算KMP算法next数组
求解方法:next数组中第一位写0,第二位写1 。求解后面每个元素的next值时,将该元素前一个元素next值所对应下标的元素进行比较,如果相同,则将前一元素next值+1作为当前元素的next值;否则,则将前一元素next值所对应下标的元素作为新元素重复上述操作;如果找到则将前面元素next值+1作为待求元素的next值;如果找到最前面都找不到相同元素,则将待求元素的next值赋为1。实例如下:设模式串为 abaabcaba第一步:将第 1 个元素和第 2 个元素的next值设置为 0 和 1 。原创 2020-07-20 22:49:25 · 3526 阅读 · 3 评论