数据算法之二叉树插入(BinaryTreeL Insert)的Java实现
2017-05-08 00:00
363 查看
本文的代码来自于《数据结构与算法(JAVA语言版)》,是笔者在网上找到的资料,非正式出刊版物。笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论。
二叉树插入的基本思想是从根结点开始,待插入的元素如果比根节点小,则继续寻找左边的子结点;如果比根结点大则继续寻找右边的子结点。依次往复。
如图所示:
二叉树插入的基本思想是从根结点开始,待插入的元素如果比根节点小,则继续寻找左边的子结点;如果比根结点大则继续寻找右边的子结点。依次往复。
如图所示:
输入:待插元素ele 输出:在二叉查找树中插入ele 代码: public void insert(Object ele){ BinTreeNode p = null; BinTreeNode current = root; while (current!=null){ //找到待插入位置 p = current; if (strategy.compare(ele,current.getData())<0) current = current.getLChild(); else current = current.getRChild(); } startBN = p; //待平衡出发点 * if (p==null) root = new BinTreeNode(ele); //树为空 else if (strategy.compare(ele,p.getData())<0) p.setLChild(new BinTreeNode(ele)); else p.setRChild(new BinTreeNode(ele)); }
相关文章推荐
- 数据算法之二叉树插入(BinaryTreeL Insert)的Java实现
- 数据算法之二叉树删除(BinaryTreeL Remove)的Java实现
- 数据算法之二叉树删除(BinaryTreeL Remove)的Java实现
- 数据算法之二叉树查找(BinaryTreeL Search)的Java实现
- 【LeetCode-面试算法经典-Java实现】【144-Binary Tree Preorder Traversal(二叉树非递归前序遍历)】
- 【LeetCode-面试算法经典-Java实现】【114-Flatten Binary Tree to Linked List(二叉树转单链表)】
- 数据算法之插入排序(insertSort)的Java实现
- 【LeetCode-面试算法经典-Java实现】【035-Search Insert Position(搜索插入位置)】
- 【LeetCode-面试算法经典-Java实现】【144-Binary Tree Preorder Traversal(二叉树非递归前序遍历)】
- 【LeetCode-面试算法经典-Java实现】【145-Binary Tree Postorder Traversal(二叉树非递归后序遍历)】
- 【LeetCode-面试算法经典-Java实现】【057-Insert Interval(插入区间)】
- 数据算法之折半插入排序(binInsertSort)的Java实现
- 【LeetCode-面试算法经典-Java实现】【107-Binary Tree Level Order Traversal II(二叉树层序遍历II)】
- 数据算法之插入排序(insertSort)的Java实现
- 【LeetCode-面试算法经典-Java实现】【111-Minimum Depth of Binary Tree(二叉树的最小深度)】
- 【LeetCode-面试算法经典-Java实现】【111-Minimum Depth of Binary Tree(二叉树的最小深度)】
- 【LeetCode-面试算法经典-Java实现】【199-Binary Tree Right Side View(从右边看二叉树)】
- 【LeetCode-面试算法经典-Java实现】【057-Insert Interval(插入区间)】
- 【LeetCode-面试算法经典-Java实现】【103-Binary Tree Zigzag Level Order Traversal(二叉树分层Z字形遍历)】
- 【LeetCode-面试算法经典-Java实现】【107-Binary Tree Level Order Traversal II(二叉树层序遍历II)】