function Tree() {
this.root = null;
}
Tree.prototype = {
constructor: Tree,
addItem: function(value) {
var Node = {
data: value,
left: null,
right: null
};
if (this.root == null) {
this.root = Node;
} else {
var current = this.root;
var parent = current;
while (current !== null) {
parent = current;
if (value < current.data) {
current = current.left;
continue; //此处容易忽略,缺少下一句if判断current.data会报错
}
if (value === current.data) {
return false;
}
if (value > current.data) {
current = current.right;
continue;
}
}
if (value < parent.data) {
parent.left = Node;
}
if (value > parent.data) {
parent.right = Node;
}
}
},
/*先序遍历*/
firstlist: function(root) {
if (root !== null) {
console.log(root.data);
this.firstlist(root.left);
this.firstlist(root.right);
}
},
/*后序遍历*/
lastlist: function(root) {
if (root !== null) {
this.lastlist(root.left);
this.lastlist(root.right);
console.log(root.data);
}
},
/*中序遍历*/
inlist: function(root) {
if (root !== null) {
this.inlist(root.left);
console.log(root.data);
this.inlist(root.right);
}
}
};
var Tree = new Tree();
Tree.addItem(5);
Tree.addItem(1);
Tree.addItem(6);
Tree.addItem(8);
Tree.addItem(7);javascript 搜索二叉树
最新推荐文章于 2025-05-20 13:29:42 发布
本文详细介绍了使用JavaScript实现树形结构的插入、先序遍历、后序遍历和中序遍历操作。通过实例演示了如何在树结构中进行元素的添加和不同类型的遍历,旨在帮助开发者理解并掌握树形数据结构的基本操作。
1124

被折叠的 条评论
为什么被折叠?



