`
rain_2372
  • 浏览: 674743 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来

    博客分类:
  • java
阅读更多
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,;  
        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;  


转http://www.itzhuyi.com/item/Print.asp?ID=10266&m=1
分享到:
评论

相关推荐

    先序遍历二叉树的非递归算法程序

    编写先序遍历二叉树的非递归算法程序,要求: (1)以二叉链表建立二叉树。 (2)输出遍历的结点序列。 (3)有实例验算。

    建立二叉树,并输出二叉树的先序,中序和后序遍历序列,以及二叉树的叶子数

    [问题描述] 建立二叉树,并输出二叉树的先序,中序和后序遍历序列,以及二叉树的叶子数。 [基本要求] 要求根据读取的元素建立二叉树,能输出各种遍历。 [实现提示] 可通过输入带空格的前序序列建立二叉链表。

    遍历二叉树(java实现)

    用java实现二叉树遍历 包括先序,中序,后序 后续是自己写的算法 可以运行

    剑指offer算法实现java版——面试题19二叉树的镜像

    分析:所谓“镜像”就是从镜子里看到的样子。我们可以画一棵二叉树,然后画出该...遍历我们可以使用先序遍历,首先判断当前根结点是否为叶子结点,若非叶子结点,则交换左右孩子,然后再分别对左右孩子进行相同的操作。

    编写递归算法,计算二叉树中叶子结点的数目

    编写递归算法,计算二叉树中叶子结点的数目

    二叉树的非递归遍历运算

    二叉树的非递归遍历运算 建立二叉树的三叉链式存储结构,在此基础上完成...4) 非递归的先序遍历、中序遍历、后序遍历算法 5)查找指定结点的双亲。 6)查找指定结点x,若存在返回true,否则返回false 7)求各结点的度。

    JAVA 二叉树实验

    1)建立一个二叉树; 2)实现该二叉树的先序遍历、中序遍历和后序遍历递归算法并输出各遍历序列; 3)统计出该二叉树中叶子结点的个数;

    这是Kotlin语言版本的 Android 客户端本地化算法展示 Java 语言编写的面试算法_kotlin_代码_下载

    用二叉、先序和序顺序法 打印二叉树的存在节点 二叉树的序列化和反序列化 示例算法 冒泡示例 选择示例 插件示例 计数示例 快速示例 并举示例 堆示例 力扣算法 周 1.两数之和 4.寻找两个结果的直接曝光 11.盛最多...

    Algorithms-and-data-structures---Java:自己根据书C语言版算法数据结构和一些资料,用Java实现其中经典的语法和算法结构

    根据书C语言版算法数据结构和一些资料,使用面向对象思想和Java语言实现其中经典的语法和算法结构。 按目录分别实现: 01 数组、升序、二分法查找 02 简单排序:冒泡排序、选择排序、插入排序 03 栈、队列、循环队列...

    java面试题

    请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来. 119 84.12. 请写一个java程序实现线程连接池功能? 122 84.13. 编一段代码,实现在控制台输入一组数字后,排序后在控制台输出; 122 ...

    JAVA面试题最全集

    请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来. 43.请写一个java程序实现线程连接池功能? 44.给定一个C语言函数,要求实现在java类中进行调用。 45.如何获得数组的长度? 46....

    Python 二叉树的层序建立与三种遍历实现详解

    今天我就在B站看了数据结构中关于树的内容后,又用我浅薄的Python大法来实现一些树的建立和遍历。 关于树的建立我觉得层序建立对于使用者来说最为直观,输入很好写。(好吧,我是看LeetCode中的树输入都是采用层序...

    数据结构树的操作实验报告

    ④二叉树先序遍历的非递归算法实现; ⑤利用二叉树的遍历算法求二叉树的结点数、二叉树的叶结点数、二叉树的高度; ⑥二叉树的撤销删除 三、实验步骤: 1、需求分析: 本演示程序用JAVA编写,完成树的生成,任意位置...

    Java服务器端开发面试.doc

    能根据题目想到这方面,简单的例子能写出来 图的算法 最好去leetcode上系统的刷一下题,不需要全部刷完,但是基本的类型都刷到,很 有帮助,代码能力也能提高 ----------------------- Java服务器端开发面试全文共2...

    BAT算法面试指南(下)1

    目录目录经典算法Manacher算法原始问题进阶问题BFPRT算法morris遍历二叉树遍历规则先序、中序序列后序序列时间复杂度分析求和为aim的最长子数组长度

    lrucacheleetcode-leetcode:LeetCode算法问题

    lru缓存leetcode ...二叉树先序遍历 二叉树右侧视图 二叉树倾斜 二叉树倒置 二叉树倒置.c 二叉树垂直顺序遍历 二叉树之字形水平顺序遍历 二进制手表 数字范围的按位与 字符串中的粗体字 二叉树的边界 灯泡切换器

    突破程序员基本功的16课.part2

    第3课 常见Java集合的实现细节 3.1 Set和Map 3.1.1 Set和Map的关系 3.1.2 HashMap和HashSet 3.1.3 TreeMap和TreeSet 3.2 Map和List 3.2.1 Map的values()方法 3.2.2 Map和List的关系 3.3 ArrayList和...

    Algorithm:此项目旨再梳理到Android系统或源码中使用到的算法

    实现一些常见基础的算法,并为后续android中使用的复杂算法做准备 1.二叉树的遍历 先序思想:中左右 中序思想:左中右 后序思想:左右中 2.二叉树的翻转 思想:temp存储临时二叉树,递归每一层都进行左右子树取反 3....

    javalruleetcode-pythonalgr:使用python学习算法

    总结了一下三种二叉树遍历的迭代实现方式, 有一些感悟: 先序的迭代实现是最简单的, 因为你只需要访问根节点一次, 访问之后, 就可以从栈中丢弃, 放入子树的节点, 就可以完成后续的工作. 中序遍历的迭代实现, 核心操作...

Global site tag (gtag.js) - Google Analytics