二叉树(Binary tree)是树形构造的一个重要类型。许多理论问题形象进去的数据结构往往是二叉树模式,即便是个别的树也能简略地转换为二叉树,而且二叉树的存储构造及其算法都较为简单,因而二叉树显得特地重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之分。
由二叉树定义以及图示剖析得出二叉树有以下特点:
1)每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点。
2)左子树和右子树是有程序的,秩序不能任意颠倒。
3)即便树中某结点只有一棵子树,也要辨别它是左子树还是右子树。
上面代码如何去创立一个二叉树
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>二叉树</title></head><body> <script type="text/javascript"> function BinaryTree(){ var Node = function(key){ this.key = key; this.left = null; this.right = null; } //插入节点 大于旧节点,放在node.right 小于旧节点,放在node.left var insertNode = function(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) } } } var root = null; //创立节点并插到相应的地位 this.insert = function(key){ var newNode = new Node(key) if(root === null){ root = newNode }else{ insertNode(root,newNode) } } } var nodes = [8,3,10,1,6,14,4,7,13] var binaryTree = new BinaryTree() nodes.forEach(key =>{ binaryTree.insert(key) }) console.log(binaryTree) </script> </body></html>