public class MyTest {
private MyTree tree;
/**
*二叉树的插入,参数为(关键字,数据)
*
**/
public void insert(int key, int data) {
if (tree == null) {
tree = new MyTree();
tree.key = key;
tree.data = data;
} else {
MyTree newTree = new MyTree();
newTree.key = key;
newTree.data = data;
MyTree parent = tree;
while (true) {
if (newTree.key < parent.key) {
if (parent.leftChild == null) {
parent.leftChild = newTree;
return;
} else {
parent = parent.leftChild;
}
} else if (newTree.key > parent.key) {
if (parent.rightChild == null) {
parent.rightChild = newTree;
return;
} else {
parent = parent.rightChild;
}
}
}
}
}
/**
* 二叉树的查找,参数为(关键字),返回值为 myTree的一个实例
*
* **/
public MyTree find(int key) {
if (tree == null)
return null;
MyTree curr = new MyTree();
curr.key = key;
MyTree parent = tree;
while (true) {
if (parent == null) {
return null;
} else if (curr.key == parent.key) {
return parent;
} else if (curr.key > parent.key) {
parent = parent.rightChild;
} else if (curr.key < parent.key) {
parent = parent.leftChild;
}
}
}
/*
*
* 递归的二叉树中序遍历
*/
private static void midOrder(MyTree tree) {
if (tree != null) {
midOrder(tree.leftChild);
System.out.println(" " + tree.key + "," + tree.data);
midOrder(tree.rightChild);
}
}
/*
* 前序遍历
*/
private static void frontOrder(MyTree tree) {
if (tree != null) {
System.out.println("" + tree.key + " , " + tree.data);
frontOrder(tree.leftChild);
frontOrder(tree.rightChild);
}
}
public static void main(String[] args) {
System.out.println("Tree view Begin");
MyTest t1 = new MyTest();
t1.insert(8, 25);
t1.insert(5, 9);
t1.insert(58, 87);
t1.insert(13, 82);
t1.insert(4, 8);
t1.insert(12, 54);
t1.insert(53, 123);
t1.insert(56, 47);
t1.insert(2, 75);
t1.insert(34, 5);
t1.insert(6, 23);
System.out.println("现在开始遍历:");
frontOrder(t1.tree);
midOrder(t1.tree);
}
}
class MyTree {
int key;
int data;
MyTree leftChild;
MyTree rightChild;
}
分享到:
相关推荐
这篇博客"java二叉树算法(转)"可能会探讨如何在Java中实现和操作二叉树,特别是涉及算法的部分。二叉树通常用于搜索、排序和组织数据,其特性是每个节点最多有两个子节点,通常分为左子节点和右子节点。 二叉树的...
以下是一些关于Java中二叉树算法的知识点: 1. **递归实现**: - 在给定的代码中,我们可以看到斐波那契数列(Fibonacci sequence)的递归实现。递归是一种强大的编程技术,尤其适用于处理树状结构。在这个例子中...
总之,这个Java二叉树算法实例教程将帮助初学者深入理解二叉树这一核心数据结构,并提供实践机会,以便他们能够熟练地应用到实际问题中。通过学习和实践,不仅可以提升编程技能,还能为解决更复杂的算法问题打下坚实...
二叉树是计算机科学中的一个重要数据结构,在进行...递归构建和遍历是实现二叉树的两个核心方面,它们共同构建了复杂二叉树算法的基石。在实际应用中,还需要考虑树结构的动态调整、内存管理以及效率优化等多个方面。
在编程领域,排序算法是数据结构与算法学习中的基础部分,尤其在Java中,掌握各种排序算法的实现有助于提升程序的效率和理解力。本文将详细介绍几种常见的排序算法及其Java实现,同时也会涉及二叉树的基本概念和实现...
在Java中实现二叉树算法,我们通常会用到面向对象编程的思想,通过定义一个类来表示树节点,并包含相关的操作方法。在这个主题中,我们将深入探讨二叉树的遍历算法,包括前序遍历、中序遍历和后序遍历。 首先,我们...
以上就是Java实现二叉树的基本操作的详细讲解,这些操作对于理解和应用数据结构在实际问题中非常重要。在Java中,二叉树的实现可以帮助我们解决许多算法问题,例如搜索、排序、路径查找等。通过熟练掌握这些操作,...
### Java二叉树算法实现:节点插入与遍历示例代码 #### 一、核心概念与定义 在深入了解本文档中的代码之前,我们先来回顾一下二叉树的基本概念: - **二叉树**是一种非线性的数据结构,每个节点最多有两个子节点...
包括 add delete find 等方法,适用于搞java/android开发的同学学习和了解二叉树的结构以及实现。
### Java简单实现二叉树知识点解析 #### 一、二叉树基本概念 二叉树是一种树形数据结构,其中每个节点最多有两个子节点,通常称为左子节点和右子节点。二叉树在计算机科学中有着广泛的应用,如搜索算法、排序算法...
总的来说,“数据结构 二叉树 java图形界面实现”是一个综合性的课题,涵盖了数据结构、算法和GUI编程等多个方面,对于提升软件开发能力非常有帮助。理解并熟练掌握这些知识,不仅能够解决实际问题,也是通往更高级...
用Java实现的二叉树算法.doc
在Java编程中,可能会用到数据结构如`ArrayList`或`LinkedList`来存储箱子和车箱的信息,`TreeSet`或自定义的二叉树结构来快速查找空间。此外,可能会用到递归、迭代或动态规划等算法思想。 总的来说,这个Java项目...
在给定的Java二叉树课程设计中,我们需要理解二叉树的概念,熟悉其性质和操作,以及如何在Java中实现这些操作。通过创建用户界面,用户可以输入数据,程序则需要将这些数据转换成二叉树的图形表示,并支持插入、删除...
二叉树是一种在计算机科学中广泛使用的数据结构,它的每个节点最多有两个子节点,通常称为左...这种可视化工具对于教学、测试和调试二叉树算法非常有帮助,因为它提供了一种直观的方式来观察和理解数据结构的动态变化。
在计算机科学领域,二叉树是一...通过分析和实践这些Java二叉树代码,你可以深入理解二叉树的基本原理和操作,提高你的编程技能和解决问题的能力。同时,这对于准备面试或参加编程竞赛的开发者来说也是必不可少的练习。
在IT领域,数据结构是计算机科学的基础,而二叉树作为一种重要的数据结构,被广泛应用于算法设计、数据库系统、编译器等领域。本教程将详细阐述如何使用JAVA语言实现二叉树的相关操作。 首先,我们要了解二叉树的...
在这个压缩包里,你可能找到包括但不限于以下内容:二叉链表和左子右兄弟的C++或Java代码实现、相关算法的伪代码、详细的解释文本,甚至可能有示例图和练习题目。 总之,学习二叉树的实现,特别是二叉链表和左子右...
数据结构-二叉树Java实现及其遍历算法,代码示例中实现了中序遍历,简单易学。