二叉搜索树是啥

如题所述

二叉搜索树是一棵空树,若它的左子树不为空,则左子树上所有节点的值都小于根节点的值。若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值。

二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,不论哪一种操作,所花的时间都和树的高度成正比。因此,如果共有n个元素,那么平均每次操作需要O(logn)的时间。

它的左、右子树也分别为二叉排序树。二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;所以应用十分广泛,例如在文件系统和数据库系统一般会采用这种数据结构进行高效率的排序与检索操作。

二叉搜索树(BST)又称二叉查找树或二叉排序树。一棵二叉搜索树是以二叉树来组织的,可以使用一个链表数据结构来表示,其中每一个结点就是一个对象。

除了key和位置数据之外,每个结点还包含属性lchild、rchild和parent,分别指向结点的左孩子、右孩子和双亲(父结点)。如果某个孩子结点或父结点不存在,则相应属性的值为空(NULL)。根结点是树中唯一父指针为NULL的结点,而叶子结点的孩子结点指针也为NULL。

二叉搜索树的删除:

二叉树的删除相对来说要麻烦一些,如果删除的是叶子节点,可以直接删除。如果删除的节点只有一个子节点,让这个仅有的子节点替代他。如果删除的节点有两个子节点,就需要考虑删除当前节点后子节点该怎么存放。

删除有两种实现方式,一种是直接删除需要删除的节点,一种是使用移形换位法,直接删除有个缺点就是会导致树严重不平衡,在后面我们讲 AVL 树和红黑树的时候使用的都是移形换位法。这里我们先来讲下直接删除是怎么操作的。

温馨提示:答案为网友推荐,仅供参考
相似回答