zoukankan      html  css  js  c++  java
  • 通过js来实现一个二叉查找树。

    二叉查找树,数据结构中很经典也很基础的知识。今天我们来用js实现一个二叉树的功能。
          首先,我们来分解功能,实现一个二叉树。节点,树的整体结构,插入 方法,当然还有查找方法(中序,先序,后序)

    第一步,我们来实现节点类,

    function Node(data) {
      this.data = data
      this.left = left
      this.right = right
    }
    Node.prototype.getData = function() {
      return this.data
    }

    第二步,我们来实现树的整体结构类以及插入方法。

    function Bst () {
    this.root = null
    }
    Bst.prototype.insert = function(data) {
      let node = new Node(data)
      if (!this.root) {
         this.root = node
      } else {
         let cur = this.root
         let mid = null
         while (true) {
            mid = cur
            if (data < cur.data) {
               cur = cur.left
               if (!cur) {
                   mid.left = node
                   break
               }
            } else {
               cur = cur.right
               if (!cur) {
                   mid.right = node
                   break
               }
    
             }
         }
      }
    }            

    接下来我们来测试下。我们在浏览器中new一个Bst,并且插入一些数值,看看是否和我们所想要的结果一样。

    let c = new Bst()
    c.insert(50)
    c.insert(40)
    c.insert(60)
    c.insert(39)
    c.insert(45)

    可以看到如我们所预期的一样,二叉查找树正确的显示出来了。

  • 相关阅读:
    json格式转换
    早该知道的7个JavaScript技巧
    SPFA加上SLF时判负环的条件
    HDU 4061 A Card Game
    线性筛法求素数
    STL之deque
    POJ 3219 二项式系数
    HDU 4296 Buildings
    HDU 4292 Food (成都赛区网络赛第五题,拆点网络流)
    拆点网络流(POJ3281)
  • 原文地址:https://www.cnblogs.com/hjdjs/p/10049306.html
Copyright © 2011-2022 走看看