5W1H
- What:具有分支层次关系的集合
- When:1850年左右吧
- Who:据《中国大百科全书数学卷》P679页,在1847年,G R 基尔霍夫在建立电网络理论时,以图G代替电网络N,提出了“连通图”,“树”,“支撑树”等基本概念。1857年 A 凯莱在研究饱和碳氢化合物同分异构体数目时独立地提出了树的概念,他把这类化合物的计数问题抽象为某类树的计数问题。这类树中要求关联到每点的线的条数是1到4,树上的一个点对应于一个氢原子或一个碳原子,这一问题是树的计数问题的起源。
- Where:元素之间有分支,层次关系的地方
- Why:线性结构的顺序查找太慢了,使用二分查找,就相当于是二叉树
- How:
二叉树
- 有顺序存储和链式存储
- 常规操作集:创建,是否为空,遍历
- 遍历分为:先序遍历,中序遍历,后序遍历,层序遍历
- 遍历可以递归实现,也可以借助栈或者队列非递归遍历
- 两种遍历序列确定一颗二叉树
- 常规操作集:输出二叉树的所有叶结点,求二叉树的高度
- 表达式树及其遍历
- 二叉树的创建
- 表达式树的构造
二叉搜索树
- 也叫BST、 二叉排序树、二叉查找树
- 新增操作集:动态查找,搜索最大最小元素
- 插入元素
- 删除元素
平衡二叉树
- ASL平均查找长度
- AVL的调整
- 单旋
- 双旋
堆
堆及其操作
最大堆
哈夫曼树
并查集
B树
B+树
红黑树