码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • javascript二叉树相关的知识


    作者我呢,在学这个之前,也是在学习了C语言的数据结构和算法的一些东西,然后我去看这个javascript,因为我感觉那个比较专业一点,好了,我们一起来看一下,什么是二叉树

    介绍一下什么是树(tree),抽象一下,树是不是有很多节点,一棵树至少会有一个节点(根节点),

    当然也可以是空树

    • 树由节点组成,而节点的定义就是:一个数据、两个指针(如果有节点就指向节点、没有节点就指向null):
    • 当然这里注意,树也有深度
    • 叶子深度
    • 子节点长度

    二叉树中还有一种特殊的二叉树:二叉查找树(binary search tree)

    • 定义:当前根节点的左边全部比根节点小,当前根节点的右边全部比根节点大。
    • 明眼人可以看出,这对我们来找一个数是非常方便快捷的

    如何用js代码写一个二叉查找树呢?

    function Node(key) {
      this.key = key;
      this.left = null;
      this.right = null;
    }
    function BinarySearchTree() {
      this.root = null;
    }
    // 查询树排序插入
    function insertNode(node, newNode) {
      // 如果新节点值小于当前节点值,则插入左子节点
      if (newNode.key < node.key) {
        if (node.left === null) {
          node.left = newNode;
        } else {
          insertNode(node.left, newNode);
        }
      } else {
        // 如果新节点值大于当前节点值,则插入右子节点
        if (node.right === null) {
          node.right = newNode;
        } else {
          insertNode(node.right, newNode);
        }
      }
    }
    // 插入
    BinarySearchTree.prototype.insert = function (key) {
      let newNode = new Node(key);
      if (this.root === null) {
        this.root = newNode;
      } else {
        insertNode(this.root, newNode);
      }
    }

    let tree = new BinarySearchTree()
    tree.insert(19)
    tree.insert(10)
    tree.insert(20)
    tree.insert(23)
    tree.insert(1)
    tree.insert(18)
    console.log(tree)

  • 相关阅读:
    解决django跨域问题详解
    Linux的调试工具 - gdb(超详细)
    运维常见的22个故障排查和10个问题解决技巧大汇总!
    Vue3:给表格的单元格增加超链接功能(点击单元格可以跳转到新的页面)
    【Windows 常用工具系列 11 -- 笔记本F5亮度调节关闭】
    SELF-RAG: 让LLM集检索,生成跟评判等多种能力于一身
    潘多拉 IOT 开发板学习(HAL 库)—— 实验7 窗口看门狗实验(学习笔记)
    汇编考试题目
    Spring Boot 2.x系列【22】应用监控篇之Health端点
    华为u2000v200r018 同步网元失败 提示 服务器不可达 解决办法
  • 原文地址:https://blog.csdn.net/yyh231366/article/details/126644287
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号