作业:
1、把一棵二叉树转换为它的镜像树。
2、输入两棵二叉树A,B,判断B是不是A的子结构(我们约定空树不是任意一个树的子结构)。
? 3、将一棵有序二叉树转换成一个有序的双向链表。
4、计算出有序二叉树中倒数第K个大的数。
5、判断一个二叉树是否对称。
6、请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
线索二叉树:
链式二叉树中有很多空指针,可以让这些指针指向下一个节点,这样在遍历树时可以不用递归而是使用循环,可以提高树的遍历速度。
中序线过树节点数据项:
数据
左子树指针
右子树指针
右子树指针标志(假表示指向的是右子树,真表示指向的是下一个节点)
实现过程:
1、创建线索
2、按照线索进行遍历
选择树:
是一种完全二叉树,待比较的数据存储在最后一层,根节点是左右子树的其中一个,是它们的最大的或最小的,选择树的功能就是快速找出其中的最大值或最小值。
堆:
是一种完全二叉树,不适合链式存储。
大顶堆:根节点比左右子树大。
小顶堆:根节点比左右子树小。
数据项:
存储数据的内存首地址
容量
数量
运算:
创建,调整,插入,删除,空堆,满堆
堆可以实现优先队列的效果。