排序二叉树
来源:互联网 发布:java完全自学第一步 编辑:程序博客网 时间:2024/06/06 08:59
1. 节点
public class Node { // 数据项 public long data; // 左子节点 public Node leftChild; // 右子节点 public Node rightChild; public Node(long data) { this.data = data; }}
2. 二叉树
public class Tree { // 根节点 public Node root; public void insert(long value) { // 创建 结点对象 Node newNode = new Node(value); // 创建遍历对象 Node current = root; Node parent; if (root == null) { root = new Node(value); return; } // 循环遍历 while (true) { // 要插入的结点 与 当前结点进行比较 parent = current; if (value > parent.data) { // 右侧插入 current = current.rightChild; if (current == null) { parent.rightChild = newNode; return; } } else { // 左侧插入 current = current.leftChild; if (current == null) { parent.leftChild = newNode; return; } } } } /** * 通过数据查找结点 * * @param value */ public Node find(long value) { Node currentNode = root; if (root == null) { return null; } while (currentNode.data != value) { if (value > currentNode.leftChild.data) { // 向右查找 currentNode = currentNode.rightChild; } else { currentNode = currentNode.leftChild; } if (currentNode == null) { return null; } } return currentNode; } /** * 前序遍历 : 头。左 右 * * @param localNode */ public void frontOrder(Node localNode) { if (localNode != null) { // 访问根节点 System.out.println(localNode.data + ","); frontOrder(localNode.leftChild); frontOrder(localNode.rightChild); } } /** * 中序遍历 * * @param localNode */ public void inOrder(Node localNode) { if (localNode != null) { frontOrder(localNode.leftChild); System.out.println(localNode.data + ","); frontOrder(localNode.rightChild); } } /** * 后序遍历 */ public void afterOrder(Node localNode) { if (localNode != null) { // 后序遍历左子树 afterOrder(localNode.leftChild); // 后序遍历右子树 afterOrder(localNode.rightChild); // 访问根节点 System.out.println(localNode.data + ", "); } }}
阅读全文
1 0
- 二叉树,排序二叉树
- 排序算法-二叉树排序
- 树-排序二叉树
- 二叉树排序
- 排序二叉树
- 使用二叉树排序
- 排序二叉树 原理
- 二叉树排序法
- 二叉树排序
- java-二叉树排序
- 二叉排序(查找)树
- 排序二叉树
- 二叉树排序
- 二叉树排序
- 二叉树排序算法
- 二叉排序(查找)树
- 二叉树排序原理
- 二叉树排序
- Mongodb副本集基本操作
- 如何使用Erdas拼接谷歌卫星地图
- Spring boot入门博客推荐
- 如何让linux加载当前目录的动态库
- 第四简单的4-mybatis,sql传参parameterType为包装类和map类型的测试
- 排序二叉树
- [教程]如何快速转载他人博客?
- iPhone 开发——CocoaPods使用
- Android 比例缩放viewgroup
- Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
- admob数据爬取
- vim编辑器设置
- JSP 基础详解
- hadoop学习(二)----HDFS简介及原理