一、树
1、树:是n个结点的有限集
2、根:有且仅有一个
3、子树
4、结点
5、度:结点拥有的子树数
6、叶子或者终端结点:度为0的结点
7、非终端结点或分支结点:度不为0的结点
8、孩子、双亲、兄弟、子孙、堂兄弟
9、层次:从根开始定义起,根为第一层,根的孩子为第二层
10、树的深度:树中的结点的最大层次
11、有序树、无序树
二、森林
三、二叉树
1、二叉树:每个结点至多只有两棵子树,并且二叉树的子树有左右之分
2、二叉树的5种基本形态(空二叉树)|(仅有根结点的二叉树)|(右子树为空的二叉树)|(左、右子树均非为
空的二叉树)|(左子树为空的二叉树)
3、二叉树的三个性质
4、满二叉树、完全二叉树
5、完全二叉树的性质
6、树的存储结构:顺序存储结构、二叉链表、三叉链表、线索链表
1)顺序存储结构
a)完全二叉树和一般二叉树的顺序存储结构表示
b)在最坏情况下,一个深度为k且只有k个结点的二叉树需要的存储单元?
2)二叉树和三叉树的存储结构
a)二叉树:数据域、左指针域、右指针域(图6.8)
b)三叉树:数据域、左指针域、右指针域、双亲指针域(图6.8)
四、遍历二叉树
1、先序(根)排序(实现?)
2、中序(根)排序(实现?)
3、后序(根)排序(实现?)
4、表达式a+b*(c-d)-e/f (前缀表达式|中缀表达式|后缀表达式)
5、【算法】二叉树的中序非递归遍历算法
6、【算法】二叉树的层序遍历算法
7、【算法】建立二叉树算法
8、遍历算法的时间复杂度和空间复杂度
五、线索二叉树
1、线索二叉树的存储结构
2、线索化:对二叉树以某种次序遍历使其变为线索二叉树的过程
3、如何在线索树中找结点的后继?(中序线索树?)(后序线索树?)
4、线索二叉树的存储结构
5、【算法】以双向线索链表为存储结构时对二叉树进行遍历算法
6、【算法】二叉树的线索化
六、树
1、树的存储结构:双亲表示法、孩子表示法、孩子兄弟表示法
2、树的双亲表示法(图6.13)
3、孩子表示法(图6.14孩子链表|带双亲的孩子链表)
4、孩子兄弟表示法(图6.15)
5、森林与二叉树的转换(图6.16)|(图6.17)
6、树和森林的遍历
1)树的先根遍历、树的后根遍历
2)森林的先序遍历、森林的中序遍历
7、森林的先序和中序遍历即为对应的二叉树的先序和中序遍历
七、树与等价问题
八、huffman树及其应用
1、树的路径长度
2、树的带权路径长度
3、最优二叉树或者哈夫曼树:带权路径长度最小
4、如何构造哈夫曼树
5、哈夫曼树编码(实现?)(例6.2)
九、回溯法与树的遍历
十、树的计数
1、含有n个结点的不相似的二叉树有多少课
2、例6-5