每天一点数据结构之二叉树的插入与创建
2016-05-25 14:32
316 查看
每天一点数据结构之二叉树的插入与创建
二叉树的插入:1.判断树是否为空,如果为空则直接插入当前结点成为根结点
2.若根不为空,则判断是否小于根
3.小于根插入左子树
4.大于根插入右子树
5.以此循环下去,插入完成退出
<span style="font-size:18px;">//二叉树的插入 BinaryTree.prototype.insert = function(data) { //在这里写入代码 var node = new BinaryTreeNode(data, null, null); var nodeNow = this.root; //若树为空,则直接插入成为根节点 if(this.root == null) { this.root = node; return this.root; } //若树不为空,则判断是否小于根,小于插入左子树,大于插入右子树 while (nodeNow != nul 4000 l) { if ( node.data < nodeNow.data ) //插入左子树 { if (nodeNow.left == null) //如果无左子树,直接插入 { nodeNow.left = node; break; } else //如果有左子树,继续沿左子树比较 nodeNow = nodeNow.left; } else //插入右子树 { if (nodeNow.right == null) //如果无右子树,直接插入 { nodeNow.right = node; break; } else //如果有右子树,继续沿右子树比较 nodeNow = nodeNow.right; } } return this.root; };</span>
二叉树的创建:
完成了插入,创建就十分简单了,首先创建一个空的二叉树,以数组的形式接收要插入的数据,遍历这个数组,调用插入函数将数组中的每一项都插入即可。
//二叉树的创建 BinaryTree.prototype.create = function (array) { var nodeTree =this; <span style="white-space:pre"> </span>array.forEach(function (item) { <span style="white-space:pre"> </span>nodeTree.insert(item); <span style="white-space:pre"> </span>}); }
相关文章推荐
- 浅谈算法和数据结构: 九 平衡查找树之红黑树
- 数据结构[刷水]
- 《数据结构》3.1双栈--按栈号进行操作
- 常用的数据结构算法
- 《数据结构》3.1双栈结构
- C++ map,set内部数据结构
- 数据结构->冒泡排序
- 数据结构基础之循环队列C语言实现
- 《 常见算法与数据结构》平衡查找树(2)——红黑树(附动画)
- 《 常见算法与数据结构》平衡查找树(1)—— 2-3查找树(附动画)
- 结构的艺术:模糊查询
- 数据结构与算法面试总结
- HashMap的实现原理和底层数据结构
- Python入门-数据结构类型
- 顺序表的定义与操作实现
- iOS开发小技巧--利用MJExtension解决数据结构复杂的模型转换
- HDU 5700区间交(百度之星2B)
- 模拟实现线性表-顺序存储方式
- HDU 5692 Snacks (百度之星2A)
- 共同学习Java源代码--数据结构--ArrayList类(五)