![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 72
CtrlZ1
浮天水送无穷树,带雨云埋一半山。
展开
-
KMP算法最详细分析!!
1.首先明确,next数组存在的意义是什么:示例如下:主串: a b a b c a b c a c b a b模式串: a b c a c匹配过程如下:第一次匹配:这个时候,如果不用KMP,而是用BF,那么我们的做法很明显:尝试模式串的第一个字符和主串的第二个字符进行匹配。很明显,这是多余的,这是肯定不成立的,而next数组直接告诉我们,跳过这一步,直接...原创 2018-09-25 16:47:00 · 222 阅读 · 0 评论 -
中序遍历的非递归算法
话不多说直接上代码:Status InOrderTraverse(BiTree T,Status(*Visit)(TElemType e)){ InitStack(S);Push(S,T);//根指针进栈 while(!StackEmpty(S)){ while(GetTop(S,p)&&p) Push(S,p->lchild);//...原创 2018-10-08 18:46:31 · 24704 阅读 · 7 评论 -
以双向线索链表为存储结构的线索二叉树遍历
二话不说上代码前提条件:头节点的lchild域指向二叉树的根结点,rchild域指向中序遍历时访问的最后一个结点,同时令中序遍历的第一个结点的lchild域和最后一个结点的rchild域指向头结点。Link=0,Thread=1分别代表有孩子和有后继节点,即有指针和有线索。函数过程:先找到最左边的结点,然后执行visit,然后,访问后继节点,如果有孩子,则第3个while停止,然后p=...原创 2018-10-08 19:12:28 · 826 阅读 · 0 评论 -
生动的普里姆算法详解
一:普里姆算法的介绍: 针对无向图用来生成最小生成树的算法。二:普里姆算法的步骤: 起始条件: 首先你有一个初始点v,所以此刻的点集V={v},边集S为空,同时准备两个数组,数组A记录所有点与起始点的权值(当然,如果不直接和起始点相连的话权值=无穷大),数组B用来存放距离自己最近的点,比如B[1]=2就是说距离1号点最近的点是2号点。然后算...原创 2018-11-07 18:48:27 · 6535 阅读 · 2 评论 -
通俗易懂的C++拓扑排序
不想多说了,注释写的很清楚了。 // demo6.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <list>#include <queue>using namespace std;class Graph{ int n;//顶点个数 list<...原创 2018-11-27 23:31:03 · 894 阅读 · 0 评论