js遍历树节点下的所有子节点_「Javascript数据结构」× 二叉搜索树

本文详细介绍了二叉搜索树(BST)的基本概念、插入、遍历(中序、前序、后序)以及搜索和移除操作。在遍历部分,解释了中序遍历、前序遍历和后序遍历的原理及其实现。搜索部分讲解了如何找到树中的最小和最大值以及特定值。移除操作则涵盖了移除叶节点、单子节点和双子节点的情况。
摘要由CSDN通过智能技术生成

b6434b87ffa892bc3710d90d636714a1.png

目录

  • 树的相关术语
  • 二叉树和二叉搜索树
  • 二叉树的遍历
  • 二叉搜索树的搜索
  • 二叉搜索树的移除

「 树的相关术语 」

一个树结构包含一些列存在父子关系的节点。每个节点都有一个父节点(除了顶部的第一个节点)以及零个或多个节点

802b6cb4cae351c23e9900d1648d831e.png

位于树顶部的节点叫作根节点(11)。它没有父节点。树中的每个元素都叫做节点,节点分为内部节点外部节点。至少有一个子节点的节点称为内部节点,没有子节点的节点称为外部节点或叶子节点

一个节点可以有祖先和后代。一个节点(除了根节点)的祖先包括父节点、祖父节点、曾祖父节点等。一个节点的后代包括子节点,孙子节点,曾孙子节点等。

节点的一个属性是深度,节点的深度取决于它的祖先节点的数量。比如,节点3有3个祖先节点(5,7,11),它的深度为3

树的高度取决于所有节点深度的最大值。一棵树也可以被分解成层级。根节点在第0层,它的子节点在第1层,以此类推。上图的树的高度为3


「 二叉树和二叉搜索树 」

二叉树指树中的每个节点最多只能有两个子节点:一个左节点,另一个右节点。这个定义有助于我们写出高效地在树中插入,查找和删除节点的算法。

二叉搜索树(BST)是二叉树的一种,但是只允许你在左侧节点存储(比父节点)小的值,在右侧节点存储(比父节点)大的值。例如上面图中的树,就是一棵二叉搜索树

本章以二叉搜索树作为研究对象

假设二叉树类型定义如下

function 

「 二叉搜索树的插入」

我们先为tree类定义一个插入函数

insert

要向二叉搜索树中插入一个新的节点(或键),要经历以下步骤:

第一步是验证插入操作是否是特殊操作。对于二叉搜索树的特殊情况是,我们尝试插入的树节点是否为第一个节点(行{1})。如果是,我们要做的就是创建一个Node类实例并赋值给root,将root指向这个新节点(行{2})。因为在Node构建函数的属性里,只需要向构造函数传递我们想用来插入的节点值࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值