js实现数据结构--树

什么是树?

树是一种分层数据的抽象模型。现实生活中最常见的树的例子就是家谱,或是公司的组织架构。

树的结构图:如下图

树的结构图

树的相关术语:

一棵树包含一系列存在父子关系的节点。每个节点都有一个父节点(除了顶部的第一个节点)以及零个或多个子节点.下面介绍几个常见的树的术语。

  • 根节点:位于树顶部的节点,它没有父节点
  • 内部节点:至少有一个子节点的节点
  • 外部节点:没有子节点的节点,也称为叶节点
  • 子树:子树由节点和它的后代构成,如树的结构图中的子树
  • 节点的深度:节点的祖先节点的数量
  • 树的高度:所有节点深度的最大值

二叉树和二叉搜索树:

二叉树是一种特殊的树结构,二叉树中的节点最多只能有了两个子节点,一个是左侧节点,另一个是右侧节点。

二叉搜索树(BST):二叉搜索树是二叉树的一种,但是它只允许你在左侧节点存储(比父节点)小的值,在右侧节点存储(比父节点)大(或者等于)的值,如上面的树结构就是典型的二叉搜索树。

二叉搜索树的每一个节点也有两个指针,分别指向左侧子节点和右侧子节点。如下图:

二叉搜索树数据结构的组织方式

注意:规范来说,键是树的相关术语中对节点的称呼。

js实现二叉搜索树的相关定义与方法:

首先是定义一个树的类,因为树的每个节点都有左子树和右子树,所以在定义节点的时候需要指定两个指针。二叉树中的一些方法有向树中插入一个节点,以及寻找树中的最小值和最大值,代码如下:

 function BinarySearchTree() {
        var Node = function (key) {
            this.key = key;
            this.left = null;
            this.right &
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值