每天一点数据结构之二叉树的插入与创建
来源:互联网 发布:js 判断数组是否为空 编辑:程序博客网 时间:2024/05/21 22:53
每天一点数据结构之二叉树的插入与创建
二叉树的插入:
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 != null) { 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>});}
0 0
- 每天一点数据结构之二叉树的插入与创建
- 每天一点数据结构之二叉树的查找和删除
- 每天一点数据结构之插入排序
- 每天一点数据结构之二叉树非递归遍历
- 数据结构之二叉树创建与遍历
- 数据结构 线索二叉树 创建 遍历 插入
- 数据结构与算法之——二叉树的创建及遍历
- PHP数据结构之九 PHP储存二叉树,二叉树的创建与二叉树的基本操作 遍历二叉树算法
- [C++]数据结构:平衡的二叉搜索树之AVL树的结构特点与基础插入删除操作
- 数据结构【二叉树】 二叉树的创建
- 数据结构之 双链表的创建,删除,插入
- C++数据结构与算法------------二叉树的2种创建
- 数据结构之二叉树的递归创建、递归遍历
- 数据结构与算法之二叉搜索树插入、查询与删除
- 数据结构--平衡二叉树的插入详解
- 数据结构—二叉搜索树的创建、结点的插入和删除
- [c++ 二叉树创建与遍历] 数据结构实验之二叉树三:统计叶子数
- 平衡二叉树的C语言实现(创建、插入、查找、删除、旋转)【数据结构】
- request实现页面包含
- 钉钉微应用获取身份
- 博客资源
- 怎样使用Navicat for Mysql连接Ubuntu虚拟机上的mysql服务器
- JavaScript创造对象
- 每天一点数据结构之二叉树的插入与创建
- Java导出excel表格
- CSDN--- bug系列1 CSDN登录功能有明显瑕疵
- iOS方法警告
- [转载]为什么要用补码
- Cacti监控mysql数据库服务器实现过程
- 浅拷贝和深拷贝
- Dubbox安装步骤(包含github源码下载与编译)
- 数据库group