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 + "," + 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实现,同时也会涉及二叉树的基本概念和实现...
二叉树是计算机科学中的一个重要数据结构,在进行...递归构建和遍历是实现二叉树的两个核心方面,它们共同构建了复杂二叉树算法的基石。在实际应用中,还需要考虑树结构的动态调整、内存管理以及效率优化等多个方面。
包括 add delete find 等方法,适用于搞java/android开发的同学学习和了解二叉树的结构以及实现。
在Java中实现二叉树算法,我们通常会用到面向对象编程的思想,通过定义一个类来表示树节点,并包含相关的操作方法。在这个主题中,我们将深入探讨二叉树的遍历算法,包括前序遍历、中序遍历和后序遍历。 首先,我们...
用Java实现的二叉树算法.doc
总的来说,“数据结构 二叉树 java图形界面实现”是一个综合性的课题,涵盖了数据结构、算法和GUI编程等多个方面,对于提升软件开发能力非常有帮助。理解并熟练掌握这些知识,不仅能够解决实际问题,也是通往更高级...
本文介绍了如何使用 Java 实现一个简单的二叉树。我们首先定义了二叉树节点的基本结构 `BNode`,然后定义了二叉树的类 `BTree` 并实现了构建二叉树的主要逻辑。最后,讨论了二叉树的一些应用和可能的扩展方向。通过...
以上就是Java实现二叉树的基本操作的详细讲解,这些操作对于理解和应用数据结构在实际问题中非常重要。在Java中,二叉树的实现可以帮助我们解决许多算法问题,例如搜索、排序、路径查找等。通过熟练掌握这些操作,...
横向打印二叉树算法 该算法的实现基于队列数据结构。首先,创建一个队列数组Q,并初始化队列的前端和后端指针。然后,使用递归函数creatree()来创建二叉树。该函数读取输入字符,创建节点,并将其加入队列中。最后...
`TestMain.java`通常是测试驱动代码,包含了运行算法、打印结果和验证正确性的测试用例。`CarBlock.java`和`Car.java`分别表示车上的一个装载区域(区块)和整个车辆对象,可能包含了关于矩形尺寸、装载限制等属性和...
本资源包含的是用Java编程语言实现的二叉树代码,对于学习Java和数据结构的开发者来说极具价值。 二叉树主要分为几种类型,包括: 1. 完全二叉树:在完全二叉树中,除了最后一层外,每一层都被完全填满,并且所有...
在本文中,我们将深入探讨如何使用Java编程语言从TXT文件中读取数据,构建一个平衡二叉树(例如AVL树或红黑树),并实现查找功能以及打印节点的访问路径。首先,让我们理解每个部分的基本概念。 1. **TXT文件读取**...
本教程将详细阐述如何使用JAVA语言实现二叉树的相关操作。 首先,我们要了解二叉树的基本概念。二叉树是由n(n>=0)个有限节点组成一个具有层次关系的集合。每个节点最多有两个子节点,分别称为左子节点和右子节点...
文档中涵盖了二叉树的基本概念,包括如何在Java中实现二叉树,并介绍了如何使用前序、中序和后序遍历方法来遍历二叉树。此外,文档还包括一个逐步指南,介绍如何在Java中实现二叉树的打印代码,包括详细的代码示例和...
### Java二叉树算法实现:节点插入与遍历示例代码 #### 一、核心概念与定义 在深入了解本文档中的代码之前,我们先来回顾一下二叉树的基本概念: - **二叉树**是一种非线性的数据结构,每个节点最多有两个子节点...
在Java编程语言中,二叉树是一种非常基础且重要的数据结构。它由一系列节点组成,每个节点最多有两个子节点,通常分为左子节点和右子节点。二叉树的应用广泛,比如在搜索、排序、文件系统等场景。下面我们将详细讨论...
这个例子创建了一个简单的二叉树,并使用层次遍历打印出节点值。这个`BinaryTree`类还可以扩展其他操作,如插入、删除、查找等,但在这里,我们主要关注层次遍历的实现。 总结来说,二叉树的层次遍历是通过使用队列...