二叉树(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>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。