【数组】
大小固定,不可变;
查找效率高;
插入和删除效率低;
【链表】
插入和删除效率高;
查找效率低;
【向量】
数组的索引和向量的索引的区别:
数组的索引是静态的,向量的索引是引入了遍历之后根据遍历先后的顺序计算的个数指定的。
或者说向量的索引(秩)是附加了遍历先后顺序的数组的索引。
【树】
树是节点组成的集合,是一个道路连通空间,边是连接节点之间的路径。
一种特殊的图=连通无环图,基本组成元素是节点,有连通性和无环性。
根据树的连通性(树中的任意两个节点之必存在一条路径,这条路径由有限条边组成),取定某一节点为根节点,另一节点为任意节点,则任意节点和根节点之间必存在一条
路径将它们相连。请问该路径是否唯一?答案是:唯一,因为树的无环性。
【完全二叉树】
宏观拓扑结构特征:
(1)叶子节点只能出现在最底部的两层;最底层的叶子节点均处于次底层的叶子节点的左侧
证明:待补。
(2)高度为h的完全二叉树,规模范围为[2^{h},2^{h+1}-1]
证明:待补。
(3)规模为n的完全二叉树,高度h=[log_2{n}]=o(log{n})
证明:待补。
(4)叶节点的数量大于等于内部节点的数量,但最多比内部节点多1,即完全二叉树的叶节点的数量=内部节点的数量或内部节点的数量+1;
证明:待补。
整体上使用向量数据结构来维护,内部节点类使用三叉链实现,每个节点的编号为其在向量结构中的秩的大小。
一组向量的秩的大小=这组向量的最大线性无关组所含向量的个数。
【二叉搜索树】
技巧:(1)设置变量记录上一次访问的节点的引用;
(2)删除度为2的节点时,选择大于该节点的最小节点作为交换对象,或小于该节点的最大节点作为交换对象
结论:二叉搜索树的主要性能决定于树高。
【有关树高的结论】
1.包含n个节点的二叉树,其高度不小于log_2{n},即二叉树高度的下界是log_2{n}。
证明:待补。
【统计规律】
1.在二叉树所有可能的形态中,完全二叉树出现的频率极低。随着二叉树规模的增大,这一比例还将继续锐减。
证明:待补。
完全二叉树:对于叶子节点来说是绝对的平衡,因为叶子节点没有任何子节点,即其左右子树的高度差为0。
【平衡二叉树】
提高二叉搜索树性能的主要策略是尽可能地降低树高,一种可行的方案是尽可能地使兄弟子树的高度尽可能地接近(这就是平衡二叉树中平衡的意思)。
平衡二叉树中,“平衡”=每个节点的兄弟子树的高度差不大。