二叉排序树,定义:spa
1,若左子树非空,则左子树上全部节点的关键字均小于根节点关键字。.net
2,若右子树非空,则右子树上全部节点的关键字均大于根节点关键字。指针
3,左右子树自己又是一颗二叉树。blog
定义也是一个递归定义。排序
二叉排序树的特色:递归
中序遍历二叉排序树,能够获得关键字序列是一个递增的有序序列。ci
二叉排序树查找思路:get
1,若是二叉排序树为空,则查找失败。博客
2,若是key等于当前根节点,则查找成功。it
3,若是key小于当前根节点的值,在继续在根的左子树中查找。
4,若是key大于当前根节点的值,在继续在根的右子树中查找。
二叉排序树的代码实现:
(略),哈哈哈,今天是除夕,在家里心不静,就不写了,感受也不难,之后有时间再写。
二叉排序树的查找:
在二叉排序树上的平均查找长度与二叉树的形态有关。
当树的形态比较均衡时,树的高度较小,平均查找长度也较小。
二叉排序树的插入:
1,若是二叉排序树为空,则待插节点做为根节点插入空树中。
2,若是待插入的关键字值和根节点关键字值相等,则无需插入。
3,若是插入的关键字小于根节点的数值,则插入到左子树中。
4,若是插入的关键字大于根节点的数值,则插入到右子树中。
5,如此进行下去,固然,若是该数值已经存在就再也不插入同一个数值。
二叉排序树的删除:
1,删除叶子节点,很简单,直接删除,父节点的指针域赋予NULL
2,删除单分支节点,将父节点与孩子节点直接相连
3,删除双分子节点,用它的中序后继替换它,并使整棵树保持BST性质。
二叉排序树的查找分析:
刚才也提到了,这个和二叉排序树的排列生成顺序有关,若是这个二叉排序树的形态是一条直线的话,这和顺序查找没有什么不一样,为了防止这种状况的产生,就出来了一个平衡二叉树的概念。
平衡二叉树:
略,立刻晚会就开始了,PS:祝你们新年快乐,万事如意。 (*^-^*)
学PHP的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog