下面我们来讨论一下js数据结构中的树。这里的树类似于现实生活中的树。它有树干和树枝。在程序中,树是一种数据结构,对于存储需要快速查找的数据用处不大。它是分层数据的抽象模型。树结构由一系列具有父子关系的节点组成。每个节点都有一个父节点和零个或多个子节点。下面是一个树结构:)与树相关的概念:1.子树:由节点及其后代组成,如上图所示。2.深度:节点的深度取决于其祖先节点的数量。例如节点5有2个祖先节点,其深度为2。3.高度:树的高度取决于所有节点深度的最大值。二叉树和二叉搜索树简介二叉树中的一个节点最多只能有2个子节点,一个是左子节点,一个是右子节点。这样定义的好处是有利于我们编写更高效的插入、查找、删除节点的算法。二叉搜索树是二叉树的一种,但它只允许你在左子节点中存储小于父节点的值,而在右节点中存储大于父节点的值。下面我们就按照这个思路来实现一个二叉搜索树。1.创建BinarySearchTree类这里我们将使用构造函数创建一个类:functionBinarySearchTree(){//创建节点的类letNode=function(key){this.key=key;this.left=null;this.right=null;}//根节点letroot=null;}我们将使用类似于链表的指针来表示节点之间的关系。如果你不知道链表,请阅读我的后记《如何实现单向链表和双向链表》。2.Insertakey//Insertakeythis.insert=function(key){letnewNode=newNode(key);root===null?(root=newNode):(insertNode(root,newNode))}到树中插入新节点主要有以下三部分:1.创建新节点的Node类实例-->2.判断插入操作是否为根节点,如果是根节点则指向根node-->3.添加节点除根节点以外的其他位置。insertNode具体实现如下:functioninsertNode(node,newNode){if(newNode.key
