<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>二叉树</title>
</head>
<body>
<p>二叉树的创建</p>
<script>
function BinaryTree(){
var Node = function(key){ //创建一个二叉树
this.key = key;
this.left = null;
this.right = null;
}
var root = null; //根节点
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);
}
}
}
this.insert = function(key){ //插入节点
var newNode = new Node(key);
if(root === null){
root = newNode; //插入第一个节点作为根节点
}else{
insertNode(root,newNode); //后续插入调用插入函数insertNode
}
}
}
var nodes = [8, 3, 10, 6, 1, 14, 4, 7, 13, 19 ,20 ];
var binaryTree = new BinaryTree();
nodes.forEach(function (key){
binaryTree.insert(key);
})
</script>
</body>
</html>
JavaScript 创建二叉树
最新推荐文章于 2024-02-21 21:00:41 发布