二分法查找...查找...
代码比较简单...没有注释了
public class BinaryTree {
public static void main(String[] args) {
BinaryTree bt = new BinaryTree();
int[] ints = {12,123,21,123,1,432,23,42,3,123,124,3,5435,66,456554,435,423,42,1} ;
for (int i = 0; i <ints.length ; i++) {
bt.add(new Node(ints[i])) ;
}
bt.toPrint() ;
}
private Node root;
public void add(Node n) {
if(root==null){
root = n ;
return ;
}else{
add(root , n) ;
}
}
public void toPrint(){
toPrint(root) ;
}
private void toPrint(Node n){
if(n.getLeft()!=null){
toPrint(n.getLeft()) ;
}
System.out.println(n.getValue());
if(n.getRight()!=null){
toPrint(n.getRight()) ;
}
}
public void add(Node f , Node n){
if(f.getValue()==n.getValue()){
return ;
}
if(f.getValue()>n.getValue()){
if(f.getLeft()!=null){
add(f.getLeft(),n) ;
}else{
f.setLeft(n) ;
}
}else{
if(f.getRight()!=null){
add(f.getRight(),n) ;
}else{
f.setRight(n) ;
}
}
}
}
class Node {
public Node(int value) {
this.value = value;
}
private Node left;
private Node right;
private int value;
public Node getLeft() {
return left;
}
public void setLeft(Node left) {
this.left = left;
}
public Node getRight() {
return right;
}
public void setRight(Node right) {
this.right = right;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
分享到:
相关推荐
实际内容可能包括创建不同类型的二叉树,如满二叉树或平衡二叉树,并进行插入、查找和删除等操作的示例代码。在学习时,你可以分析这些代码,理解它们的工作原理,并尝试自己编写和测试不同的二叉树操作。 总结起来...
BinarySearchTree 类包含了插入方法 insert 和查找方法 search。insert 方法用于向树中插入新的节点,search 方法用于查找指定值的节点。
5. **测试数据**:提供预设的测试数据以验证程序功能的正确性,如插入、删除、查找和遍历的具体例子。 【总结】 在给定的Java二叉树课程设计中,我们需要理解二叉树的概念,熟悉其性质和操作,以及如何在Java中实现...
二叉树是一种重要的数据结构,它在计算机科学中扮演着至关重要的角色,特别是在算法和数据存储方面。...通过实际操作这些例子,读者可以更好地掌握二叉树的建立、插入和删除等基本操作,并提升编程能力。
这个压缩包"数据结构 C++ 详细注释 二叉树的种种操作练习6例子.rar"提供了六个C++编程实例,旨在帮助学习者深入理解和掌握二叉树的各种操作。下面我们将详细探讨这些知识点。 首先,二叉树是一种特殊的树形数据结构...
### 二叉树生成知识点详解 #### 一、二叉树基本...通过这个例子,我们可以了解到二叉树的基本概念、节点结构、插入逻辑以及遍历方法。这些基础知识对于理解更复杂的树形结构如平衡二叉搜索树、红黑树等非常有帮助。
本资源包“二叉树创建及其基本操作C++.zip”提供了关于二叉树创建和基本操作的实例,包括节点的增加、删除、查找和修改,以及线索二叉树的概念。下面将详细阐述这些知识点。 二叉树是一种非线性数据结构,每个节点...
在Java编程语言中,二叉树是一种非常重要的数据结构,它由节点组成,每个节点包含...此外,二叉树的插入、删除和查找操作都需要深入理解二叉树的性质和结构。学习和熟练掌握这些知识对于成为专业的Java程序员至关重要。
在众多的数据结构类型中,线索二叉树是一种特殊形式的二叉搜索树,主要用于提高对二叉树的遍历效率,特别是对于查找前驱和后继节点。这个主题与严蔚敏教授的教材《数据结构》紧密相关,这是一本在中国计算机科学教育...
10个数据结构课程设计例子 查找.c 二叉排序树.c 二叉树层次遍历.c 二叉树非递归遍历.c 二叉树建立.c 快速排序.c 括号匹配.c 冒泡排序.c 直接插入排序.c 直接选择排序.c 10个数据结构课程设计例子 查找.c 二叉排序树....
10个数据结构课程设计例子 查找.c 二叉排序树.c 二叉树层次遍历.c 二叉树非递归遍历.c 二叉树建立.c 快速排序.c 括号匹配.c 冒泡排序.c 直接插入排序.c 直接选择排序.c 10个数据结构课程设计例子 查找.c 二叉排序树...
在"BinaryTreePractice"这个压缩包中,可能包含了实现以上概念的练习代码和例子,可以帮助你更好地理解和掌握二叉树的相关知识。通过实践这些代码,你可以加深对二叉树遍历、构建以及查找和操作的理解,并提升算法...
对于平衡二叉树,如AVL树和红黑树,还需要额外的平衡策略来确保树的高度保持最小,以优化查找性能。 在压缩包文件`matlab.txt`中,可能包含了具体的二叉树实现代码或者更详细的说明,例如不同的二叉树类型(如满...
在这个例子中使用的是中序遍历来输出二叉树中的元素: ```c void inorder(tree t) { if (t) { inorder(t->lchild); // 先遍历左子树 printf("%d ", t->data); // 然后访问根节点 inorder(t->rchild); // 最后...
同时,为了方便操作,还可以扩展类的功能,比如添加插入、删除、查找等方法。 在实际应用中,二叉树可以用来解决各种问题。例如,在信号放大器的设置问题中,可以将分布网络抽象成一个二叉树,其中每个非根节点代表...
在二叉树的例子中,`CDocument`可以包含`CBinaryTree`对象,而`CView`则负责将树的结构绘制到窗口上,或者提供交互式界面供用户进行插入、删除和搜索操作。 6. **对话框**:MFC提供了`CDialog`类来实现对话框,用户...
在实际应用中,二叉树遍历算法不仅限于简单的打印节点值,还可以用于查找、插入、删除等操作。例如,在二叉搜索树中,中序遍历可以快速找到一个特定的元素;而在构建表达式树时,后序遍历可以帮助我们求解表达式的值...
在实际应用中,二叉树的创建可能还包括插入新节点、平衡调整(如AVL树和红黑树)、遍历(前序、中序、后序)等操作。这些操作都需要对二叉树的性质有深入理解,并能灵活运用指针和引用。 总结起来,二叉树的创建...
1. **二叉树基本操作类**:这个类通常包含创建、插入、删除、查找等基本操作。例如,一个简单的二叉树节点可能包含一个值、指向左子节点和右子节点的指针。在C++中,可以定义一个名为`BinaryTreeNode`的结构体或类来...
插入操作涉及将新节点添加到二叉树中,同时保持二叉搜索树的性质不变。新节点总是作为叶子节点插入,具体位置取决于其键值与现有节点键值的关系。 #### 2.3 删除 删除操作相对复杂,因为它涉及到维持二叉搜索树的...