美文网首页
数据结构-二叉搜索树

数据结构-二叉搜索树

作者: TanzeyTang | 来源:发表于2020-02-13 11:46 被阅读0次

数据结构-二叉搜索树(BST)

定义:二叉搜索树是一个节点类的二叉树数据结构,包含以下特点:

-左子树仅包含比根节点小的节点

-右子树仅包含比根节点大的节点

-左右子树同样都是binary search tree

且没有重复节点。

BST的目的: 定义这样的结构主要是为了便于搜索,找到最小值最大值等。如:我们要搜索某个值时,只需要从根节点开始遍历该树,遍历前和根节点比大小,如果比根节点值大,遍历右子树,否则遍历左子树,这样不用所有节点遍历完,最坏的情况下遍历的次数也等同于树的深度,大大提高了查找效率。        

BST的常见操作:搜索,插入,删除

首先我们看插入节点操作,首先插入的节点应该都是叶子节点,根据BST的特性,插入的节点应该从root节点开始比较值的大小,如果比root值大,则递归遍历右子树,否则递归遍历左子树,直到新节点作为叶子节点被添加到二叉搜索树里。

class BST {

//root of BST

Node root;

//constructor

BST(){

root = null;

}

//internal class in BST class: node, which includes left and right node and a key.

class Node{

int key;

Node left, right;

public Node(int item){

    key = item;

    left = right = null;

}

}

//insert method

void insert (int key){

     root = insertRec(root,key)

}

Node insertRec(Node root, key){

    if(root == null){

        root = new Node(key);

        return root;

}

    if(key <root.key){

        root.left = insertRec(root.left, key);

}

else if(key>root.key)

    root.right = insertRec(root.right,key);

return root;

}

void inorder(){

    inorderRec(root);

}

void inorderRec(Node root){

      if(root != null){

    inorderRec(root.left);

    System.out.println(root.key);

    inorderRec(root.right);

}

}

}

test:

public static void main(String[ ] args ){

    BST tree = new BST();

    tree.inset(50);

    tree.inset(30);

//......

    tree.inorder();

}

源代码来自:geeksforgeeks.org

BST

相关文章

  • Go语言数据结构和算法-BinarySearchTree(二叉搜

    Go语言数据结构和算法-BinarySearchTree(二叉搜索树) 二叉搜索树的数据结构 Insert(val...

  • 数据结构-二叉搜索树

    数据结构-二叉搜索树(BST) 定义:二叉搜索树是一个节点类的二叉树数据结构,包含以下特点: -左子树仅包含比根节...

  • 二叉树

    参考文章 百度 数据结构中有很多树的结构,其中包括二叉树、二叉搜索树、2-3树、红黑树等等。本文中对数据结构中常见...

  • Day3--搜索树

    在二叉判定树以及二分搜索的基础上,基于二叉树的搜索树产生,该数据结构可以随时进行调整,可以保证高效的搜索效率。 内...

  • 【学习】数据结构和算法

    数据结构 线性表:数组 栈 队列 链表树:二叉树 二叉树遍历 二叉搜索树 B树 红黑树 堆图:图其他:哈希表...

  • Go:实现二叉搜索树(BST)

    二叉搜索树是一种支持快速查找、增加和删除元素的数据结构。二叉搜索树中的节点是有序的,因此支持快速查找。该数据结构由...

  • 如何在Java中实现二叉搜索树

    二叉搜索树或BST是一种流行的数据结构,用于保持元素的顺序。二叉搜索树是二叉树,其中左子节点的值小于或等于父节点,...

  • 二叉排序树

    注 关于二叉搜索树更为详细的解释请详看 《大话数据结构》第八章 查找 中二叉搜索树这一小节 二叉排序树(Binar...

  • 图解“红黑树”原理,一看就明白

    学过数据结构都知道二叉树的概念,而又有多种比较常见的二叉树类型,比如完全二叉树、满二叉树、二叉搜索树、均衡二叉树、...

  • 数据结构与算法之二叉搜索树(八)

    目录 二叉搜索树概念二叉搜索树的接口设计,包括增,删,改,查平衡二叉搜索树 一 二叉搜索树 二叉搜索树是二叉树的一...

网友评论

      本文标题:数据结构-二叉搜索树

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