美文网首页技术学习
二叉查找树的查找和排序方法的实现

二叉查找树的查找和排序方法的实现

作者: 装置图 | 来源:发表于2016-08-25 21:19 被阅读18次
*来自《算法4》
定义二叉树
  public BST extends Comparable<Key , Value>{

              private Node root;///根节点
              privare class Node{
                    private Key key;   //键
                    private Value val;//值
                    private Node left,right//指向子树的链接
                    private int N;//以该结点为根的子树中的结点总数
              private Node(Key key,Value val,int N){
               this.key=key,this.val=val;this.N=N;
             }
           private void put(Key key){}
           private void get(Key key,Value val){}
          }
 
}
二叉查找树的查找和排序方法的实现
       public Value get(Key key){
           return get(root,key);
           }
       private Value get(Node x,Key key){
    //以x为根结点的子树中查找并返回key所对应值
    //如何找不到返回null
            if(x==null) return null;
           }
          int cmp=key.compareTo(x.key);
           if(cmp<0){
            return get(x.left,key);
             }
          else if(cmp>0){
            return get(key,x.right);
             }
           else{
                 return x.val;
              }
       public void put(Key key,Value val){
          //查找key,找到则更新它的值,否则为它创建一个新的结点
          root=put(root,key,val);
          }
       private Node put(Node x,Key key,Value val){
               //如果key存在以x为根结点的子树则更新它的值,否则
                //将以key和val为键值对插入到该子树中
               if(x==null) return new Node(key,val,1);
               int cmp=key.compareTo(x.key);
                     if(cmp<0){
            return put(x.left,key,val);
             }
          else if(cmp>0){
            return get(key,x.right,val);
             }
           else x.val=val;
            x.N=size(x.left+1)+size(x.right+1)+1;
             return x;
          }

相关文章

  • 二叉查找树的查找和排序方法的实现

    定义二叉树 二叉查找树的查找和排序方法的实现

  • 6. 二叉树创建-查找

    1. 递归方式实现二叉树的构建2. 树、二叉树、二叉查找树3. 二叉树排序树的理解4. 二叉查找树5. 二叉树的查找

  • 《数据结构与算法》知识点(四)

    第七章 查找 顺序查找、折半查找、索引查找、分块查找是静态查找,动态查找有二叉排序树查找,最优二叉树查找,键树查找...

  • 7天练|Day5:二叉树和堆

    关于二叉树和堆的7个必知必会的代码实现二叉树实现一个二叉查找树,并且支持插入、删除、查找操作实现查找二叉查找树中某...

  • 二叉排序树BST

    二叉排序树/二叉查找树/二叉搜索树BST set和map的实现基础查找 插入 不使用引用C中没有引用对父节点的le...

  • 机试常用算法和题型-树专题

    静态创建新结点、构造二叉树实现前序中序遍历还原 二叉排序树查找、插入、构造科学方法 二叉排序树建立,非递归遍历方法...

  • 二叉树 堆 2019-04-17

    二叉树 实现一个二叉查找树,并且支持插入、删除、查找操作 实现查找二叉查找树中某个节点的后继、前驱节点 实现二叉树...

  • 数据结构与算法 平衡二叉树(AVL树)

    AVL树是一种特殊的二叉查找树。 二叉查找树: ⼆叉排序树(Binary Sort Tree),⼜称为⼆叉查找树....

  • 二叉查找树

    1)二叉查找树是什么?2)二叉查找树的插入、删除、查找?3)Go代码实现 一、二叉查找树是什么?二叉查找树(BST...

  • 2.4.2 查找和排序

    排序 复习1:冒泡排序 复习2:快速排序 查找 1)顺序查找2)二分查找 3)哈希表查找4)二叉排序树查找

网友评论

    本文标题:二叉查找树的查找和排序方法的实现

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