
数据结构和算法
键盘春秋
键盘论王侯,数据写春秋~~~
展开
-
二叉树的非递归插入和遍历
需求二叉树是一种常见的适合使用递归进行遍历的数据结构,但是如同绝大多数递归操作,二叉树的遍历也可以使用非递归的方式来实现,研究二叉树的非递归实现有助于更好的掌握二叉树的结构和使用方式。 递归好是好,只是太无脑。只会用递归解自循环数据就像只会用方程组解应用题那样,丧失了对数据结构本质的解析能力。实现 上图所示是一个简单的二叉树的示意图。如果要对上述二叉树进行中序遍历,我们应该先对根节点的左子树(如原创 2016-05-28 22:19:12 · 3938 阅读 · 0 评论 -
哈弗曼编码实现文件压缩和解压缩
原理哈弗曼编码的本质是将文件中出现频率越高的字符用越短的二进制码代替从而达到节省空间的目的。为了达到这个目的,需要构建哈夫曼树。 哈弗曼树的构建过程为: 1. 将源文件所有字符及其出现次数构建哈弗曼节点 2. 将权值最小的两个节点作为左右叶子节点组成一个新的哈弗曼节点来替代原哈弗曼节点集合中的这两个节点 3. 重复步骤2直至只剩一个哈弗曼节点,则该节点为哈夫曼树 而每个节点的哈弗曼编原创 2016-06-05 17:29:24 · 3792 阅读 · 1 评论