随笔分类 - 数据结构
摘要:在开始之前我们先了解几个名词: 1、什么是函数式编程:函数式编程属于"结构化编程"的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用,可以说是面向过程的程序设计。 2、函数式编程的优势: 1)函数式编程大量使用函数,减少了代码的重复,因此程序比较短,开发速度较快。 2)易于"并发编程" 。 3
阅读全文
摘要:什么是赫夫曼树? 赫夫曼树(Huffman Tree)是指给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小。哈夫曼树(也称为最优二叉树)是带权路径长度最短的树,权值较大的结点离根较近。 1 public class HNode<T> 2 { 3 public HNode()
阅读全文
摘要:为什么线索化二叉树? 对于二叉树的遍历,我们知道每个节点的前驱与后继,但是这是建立在遍历的基础上,否则我们只知道后续的左右子树。现在我们充分利用二叉树左右子树的空节点,分别指向当前节点的前驱、后继,便于快速查找树的前驱后继。 不多说,直接上代码: /// <summary> /// 线索二叉树 节点
阅读全文