美文网首页
二叉搜索树的定义

二叉搜索树的定义

作者: mrjunwang | 来源:发表于2018-07-11 14:59 被阅读0次

二叉搜索树(二叉排序树)的定义:根节点比左子树的所有节点都大,比右节点的所有节点的值都小
插入有序节点,退化成单支树
1.查找效率最好O(logn),最坏O(n)
2.插入效率和查找效率相同(只插入叶子节点)
3.删除效率最好O(logn)+O(1)->只有左子树或者右子树
最差O(logn)+O(logn)->左子树和右子树同时存在
将一个有序的数组,构建为一颗二叉搜索树

public class BinarySearchTree<T> {
    TreeNode<T> root;
    public BinarySearchTree(T[] arr){
        root=createBinarySearchTree(arr,0,arr.length-1);
    }
    
    /**
     * 
     * @param arr
     * @param left
     * @param right
     * @return
     *<p>Description:从有序的数组中构造一颗二叉搜索树 </p>
     */
    public TreeNode<T> createBinarySearchTree(T[] arr,int left,int right){
        if(left>right){
            return null;
        }
        
        int mid=left+(right-left)/2;
        
        //int mid=(left+right)/2;
        TreeNode<T> root=new TreeNode(arr[mid]);
        
        root.left=createBinarySearchTree(arr, left, mid-1);
        root.right=createBinarySearchTree(arr, mid+1, right);
        return root;
        
    }
}

相关文章

  • 二叉搜索树(Binary Search Tree)

    1. 定义 二叉搜索树(BST)又叫二叉查找树,二叉排序树。二叉搜索树就是一棵二叉树,但是它又具有搜索树的特征: ...

  • BST二叉搜索树

    二叉搜索树(BST) 定义 二叉搜索树又叫二叉排序树,相对于普通的二叉树,二叉搜索树规定父节点的左子节点小于父节点...

  • 树术语

    二叉搜索树 二叉查找树(Binary Search Tree,BST),二叉搜索树,二叉排序树 定义:它或者是一棵...

  • 为什么要有红黑树?什么是红黑树?20张图,让你完全弄懂

    为什么要有红黑树 想必大家对二叉树搜索树都不陌生,首先看一下二叉搜索树的定义: 二叉搜索树(Binary Sear...

  • 二叉查找树

    二叉查找树定义 二叉查找树(Binary Search Tree), 也称为二叉搜索树, 有序二叉树(ordere...

  • 二叉树数据结构及其算法操作(Java)

    二叉树的定义 向二叉树中插入节点 搜索二叉树中最大值和最小值 搜索二叉树的深度(height)和节点数(size)...

  • 彻底理解红黑树(一)之二叉搜索树

    彻底理解红黑树(一)之二叉搜索树彻底理解红黑树(二)之插入彻底理解红黑树(三)之删除 1. 二叉搜索树的定义 二叉...

  • 怎样应对IT面试与笔试-(五)

    二叉搜索树 二叉树中的结点按照一定规则排序就变成了一颗二叉搜索树 二叉搜索树的定义:它或者是一棵空树,或者是具有下...

  • 二叉查找树与平衡二叉树详解

    一、二叉查找树 1、定义:二叉查找树,也称二叉搜索树,或二叉排序树。其定义也比较简单,要么是一颗空树,要么就是具有...

  • 树结构——二叉查找树

    定义 二叉查找树,也称二叉搜索树、有序二叉树(英语:ordered binary tree),排序二叉树(英语:s...

网友评论

      本文标题:二叉搜索树的定义

      本文链接:https://www.haomeiwen.com/subject/dhuhpftx.html