package com.heda.code;
public class Node2 {
private int value;
private Node2 left;
private Node2 right;
/**
* 向双向链表中添加一个值
* @param value
*/
public void add(int value){
if(this.value==value){
this.value=value;
}else if(value>this.value){
if(right==null){
right=new Node2();
}
right.setValue(value);
}else if(value<this.value){
if(left==null){
left=new Node2();
}
left.setValue(value);
}
}
/**
* 在链表中查找某个值
* @param value
* @return
*/
public boolean find(int value){
if(this.value==value){
return true;
}else if(value>this.value){
if(right!=null){
return right.find(value);
}
}else if(value<this.value){
if(left!=null){
return left.find(value);
}
}
return false;
}
public void prePrint() {
System.out.print(this.value + ",");
if (left != null)
left.prePrint();
if (right != null)
right.prePrint();
}
public void middleList() {
if (left != null)
left.prePrint();
System.out.print(this.value + ",");
if (right != null)
right.prePrint();
}
public void afterList() {
if (left != null)
left.prePrint();
if (right != null)
right.prePrint();
System.out.print(this.value + ",");
}
public static void main(String[] args){
int[] data = new int[20];
for (int i = 0; i < data.length; i++) {
data[i] = (int) (Math.random() * 100) + 1;
System.out.print(data[i] + ",");
}
System.out.println();
Node root = new Node();
root.value = data[0];
for (int i = 1; i < data.length; i++) {
root.store(data[i]);
}
root.find(data[19]);
root.preList();
System.out.println();
root.middleList();
System.out.println();
root.afterList();
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
分享到:
相关推荐
java二叉树实现 (简单实现,入门用) /**创建二叉树*/ public BinaryTree createTree(String treeStr); /**寻找结点*/ public BinaryTree findNode(BinaryTree tree ,char sign); /**找所给结点的左子树*/ ...
二叉树的java实现
标题“利用二叉树实现多项式计算”明确指出本文将探讨如何通过构建二叉树来实现对多项式的运算处理。 #### 描述解读: 描述部分提到该资源为txt文本,内容包括实现思路与具体代码实现,仅供学习参考使用,不得用于...
在这个Java实现中,我们可以看到一个完整的二叉树可视化系统,包括四个关键的Java源文件:BinaryNode、Show1_12、Display_Tree和TreeControl。 1. **BinaryNode.java**: 这个文件代表二叉树的基本节点。在Java中,...
在本话题中,我们将深入探讨Java中二叉树的插入、删除操作以及遍历方法。 1. **二叉树的基本概念**: - **根节点**:二叉树中的顶级节点,没有父节点。 - **子节点**:由一个节点指向另一个节点的连接,指向的...
这篇博客"java二叉树算法(转)"可能会探讨如何在Java中实现和操作二叉树,特别是涉及算法的部分。二叉树通常用于搜索、排序和组织数据,其特性是每个节点最多有两个子节点,通常分为左子节点和右子节点。 二叉树的...
java实现二叉树非递归前序中序后序遍历
以下是对"java二叉树"这个主题的详细解析。 首先,我们要理解二叉树的基本操作: 1. 插入节点:在二叉树中插入新节点时,需要遵循二叉树的规则,即新节点只能作为现有节点的左孩子或右孩子。插入操作取决于比较新...
### Java简单实现二叉树知识点解析 #### 一、二叉树基本概念 二叉树是一种树形数据结构,其中每个节点最多有两个子节点,通常称为左子节点和右子节点。二叉树在计算机科学中有着广泛的应用,如搜索算法、排序算法...
本课程设计将详细介绍如何使用Java编程语言实现二叉树的中序遍历。 首先,我们先构建二叉树的节点类(Node),它包含一个数据字段(data)以及指向左子节点(left)和右子节点(right)的引用: ```java public ...
用java写的二叉树,一种特别的二叉树,右子树大于左子树,具体的名称不记得了。
下面我们将详细讨论在给定的“java实现的二叉树源码”中涉及的知识点。 1. **节点(Node)**: 节点是二叉树的基本构建单元,通常包含两个子节点(左子节点和右子节点)以及一个存储数据的属性。在`Node.java`文件中,...
在Java中实现二叉树的最佳方法涉及对其逻辑结构和存储结构的理解,以及如何通过代码高效地构建和遍历二叉树。 首先,数据结构可以按逻辑结构分类,其中二叉树属于非线性结构。二叉树的逻辑分类是基于节点与子树之间...
java实现 二叉树的遍历 前序遍历用到递归, 中序和后序遍历用到栈, 其实还是有一定难度的
本文将深入探讨“数据结构 二叉树 java图形界面实现”这一主题,主要围绕二叉树的基本概念、常见操作以及如何在Java环境中结合图形界面进行实现。 首先,二叉树是一种非线性的数据结构,每个节点最多有两个子节点,...
这个名为"Java二叉树算法实例.zip"的压缩包显然是一个针对初学者的教程,旨在帮助他们理解并掌握二叉树的基本概念和常见算法。 首先,二叉树是由节点构成的数据结构,每个节点包含两个子节点,分别称为左子节点和右...
java用队列实现的二叉树程序//入队 public void enqueue(E e); //出队 public E dequeue(); //取队列第一个 public E front(); //队列是否为空 public boolean isEmpty(); //队列大小 public int size...
本项目提供了Java实现二叉树的相关代码,帮助你理解和操作这种数据结构。 首先,我们要了解二叉树的基本概念。二叉树可以分为几种类型:满二叉树(每个节点要么没有子节点,要么有左右两个子节点)、完全二叉树...
在Java中动态实现二叉树,即在运行时根据需要创建、更新和操作树结构,这涉及到对数据结构和Swing组件的深入理解。 首先,二叉树是一种特殊的树形数据结构,每个节点最多有两个子节点,分别称为左孩子和右孩子。...
在Java中实现二叉树的基本操作是编程学习中的一个重要环节,这包括创建、插入节点、删除节点、遍历以及查找等操作。下面将详细介绍这些知识点。 1. **创建二叉树** 创建二叉树首先需要定义一个二叉树节点类,包含...