Java实现二叉搜索树
来源:互联网 发布:java分词算法 编辑:程序博客网 时间:2024/04/28 03:13
package Tree;/** * Created by ykanghe on 2016/9/8. */public class BinSearchTree { //根节点 Node root; //叶子节点 private static class Node { public int iData; public int fData; public Node left;//左孩子 public Node right;//右孩子 Node(int iData, int fData) { this.fData = fData; this.iData = iData; } } /** * 向二叉树插入节点 * * @param iData * @param fData */ public void insert(int iData, int fData) { Node newNode = new Node(iData, fData); if (root == null) {//如果二叉树空,则插入是根节点 root = newNode; } else {//否则从二叉树的根开始遍历 Node i = root;//定义游标,从根 Node parent;//每次遍历的父节点 while (true) { parent = i; if (iData < i.iData) { i = i.left;//如果插入的值比该节点小,则为该节点的做孩子 if (i == null) {//如果该节点的左孩子为空,则该未知就是插入的值 parent.left = newNode; return; } } else if (iData > i.iData) { i = i.right; if (null == i) { parent.right = newNode; return; } } else { return; } } } } /** * 查找某个节点 * * @return */ public Node find(int iData) { Node i = root; if (null != i) { while (i.iData != iData) { if (i.iData > iData) { i = i.left; } else { i = i.right; } if (null == i) { return null; } } } return i; } /** * 先序遍历 * * @param root */ public void preOrderTravel(Node root) { if (null != root) { System.out.print(root.iData); preOrderTravel(root.left);//遍历左子树 preOrderTravel(root.right);//遍历左子树 } } /** * 中序遍历 * * @param root */ public void inOrder(Node root) { if (null != root) { inOrder(root.left);//遍历左子树 System.out.print(root.iData); inOrder(root.right);//遍历左子树 } } /** * 查找最小节点 * * @return */ public Node findMinNode() { Node i = root; Node l = null; if (i.left == null) { return root; } else { while (null != i) { l = i; i = i.left; } return l; } } /** * 查找二叉树最大节点 * * @return */ public Node findMaxNode() { Node i = root; Node l = null; if (null == i.right) { return i; } else { while (null != i) { l = i; i = i.right; } return l; } }}
0 0
- java实现二叉搜索树
- Java实现二叉搜索树
- Java实现二叉搜索树
- Java实现二叉搜索树
- 二叉搜索树JAVA实现
- Java实现二叉搜索树
- 二叉搜索树Java实现
- 二叉搜索树 java实现
- Java实现二叉搜索树
- 简单二叉搜索树的JAVA实现。
- 【java】二叉搜索树的实现
- 二叉搜索树之Java实现
- Java代码实现二叉搜索树-----插入
- 二叉搜索树之Java实现
- 二叉搜索树节点删除 java实现
- 二叉搜索树的基本java实现
- 二叉搜索树的java实现
- 二叉搜索树学习笔记 Java实现
- 一个案例教你简单地玩转ViewPager(三)之带指示点的图片自动轮播效果
- java冒泡排序
- poj 2112
- PAT 1053. Path of Equal Weight (30)
- HDU:悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
- Java实现二叉搜索树
- 配置Yii2的redis扩展(本文使用Yii2 basic 版)
- iOS开发:离屏渲染详解和优化措施
- 设计模式——外观模式
- Http 状态码
- 自定义控件三部曲之动画篇(十三)——实现ListView Item进入动画
- 中国这10家慕课网站,您需要知道!
- Android studio使用git,及git上传本地代码到服务代码库,使用命名。
- 自定义控件三部曲之绘图篇(六)——Path之贝赛尔曲线和手势轨迹、水波纹效果