1. 链表
1.1 表头(header)或哑节点(dummy node)
- (1)便于头插(在链表的头部插入元素);
- (2)便于头删(在链表的头部删除元素);
- (3)便于一般的删除操作。
(1)(2)均会导致链表起始位置的变化,编程中的疏忽将会导致表的丢失;
2. 二叉树
二叉树的结点类型:
- root node:根节点;
- internal node:内部结点;
- leaf node:叶节点;
虽然结点含义不同,但结点结构是相同的。一般而言,都分为三部分内容:
- data
- left
- right
3. 哈弗曼树
因为每次都要从权重列表里,取出当前最小的俩个元素,可考虑使用优先队列(小顶堆)将权重列表中的元素,转移到小顶堆中,这样在小顶堆的元素数目大于 1(至少为 2)时,就可弹出小顶堆的前两个元素,即为最小的两个元素。