![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
文章平均质量分 70
onefor1
这个作者很懒,什么都没留下…
展开
-
汉诺塔
#include using namespace std;int i = 1;void move(int n, char x, char y, char z){ if (1 == n) { cout " << z << endl; i++; } else { move(n - 1, x, z, y); //将 n-1 个原创 2014-12-05 19:33:27 · 322 阅读 · 0 评论 -
二叉树
利用递归建立二叉树(前序遍历),每个节点的形式如下: *lchilddata *rchild二叉树建立及遍历代码如下:#include using namespace std;typedef char ElemType;//二叉树节点定义typedef struct BitNode{ ElemType data; struc原创 2014-12-08 10:45:18 · 293 阅读 · 0 评论 -
KMP算法
看了July写的从头到尾彻底理解KMP后,虽然自己理解还不是很深刻,但是还是想总结一下KMP算法的主要思想。1.定义 Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morris三人于1977年联合发表,故取这3人的姓氏命名此原创 2014-12-08 09:11:09 · 282 阅读 · 0 评论 -
线索二叉树
在介绍线索二叉树前,我们先简单地一下普通二叉树,普通二叉树的建立后如下:从上图可以看到,总共有2n个指针,其中非空指针为n-1个,空指针却为n+1个,这造成了空间上极度的浪费,为了能把这些空指针利用起来,我们可以将这些空指针指向其前驱节点或者后继节点。1、线索二叉树的节点结构如下所示: ltag lchild原创 2014-12-09 13:41:39 · 278 阅读 · 0 评论 -
哈夫曼编码
1、哈夫曼编码简介哈夫曼编码(Huffman Coding)是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。2、哈夫曼编码的核心思想(1)每一个字符用一个0、1串作为其代码,并要求任意一个字符的代原创 2014-12-13 00:57:42 · 1357 阅读 · 0 评论