文档章节

复习数据结构

千里山南
 千里山南
发布于 2015/07/05 16:19
字数 294
阅读 131
收藏 6
public class Test_01 {
    static class Node {
        Node parent;
        Node left;
        Node right;
        String content;
        boolean visited;
        Node(String content) {
            this.content = content;
        }

        void setLeft(Node left) {
            this.left = left;
            left.parent = this;
        }

        void setRight(Node right) {
            this.right = right;
            right.parent = this;
        }
    }


    public static void main(String[] args) {
        Node na = new Node("A");
        Node nb = new Node("B");
        Node nc = new Node("C");
        Node nd = new Node("D");
        Node ne = new Node("E");
        Node nf = new Node("F");
        Node ng = new Node("G");
        Node nh = new Node("H");
        Node ni = new Node("I");

        na.setLeft(nb);
        na.setRight(nc);

        nb.setLeft(nd);
        nb.setRight(ne);

        nc.setLeft(nf);
        nc.setRight(ng);

        ne.setLeft(ni);
        nf.setLeft(nh);

        test1(na);
        System.out.println();
        System.out.println("==========================");
        test2(na);
        System.out.println();
        System.out.println("==========================");
        test3(na);
        System.out.println();
        System.out.println("==========================");
        test4(na);
        System.out.println();
        System.out.println("==========================");
        test5(na);
        System.out.println();
        System.out.println("==========================");
        test6(na);
    }

    private static void test1(Node root) {
        if (root != null) {
            System.out.print(root.content+",");
            test1(root.left);
            test1(root.right);
        }
    }

    private static void test2(Node root) {
        if (root != null) {
            test2(root.left);
            System.out.print(root.content+",");
            test2(root.right);
        }
    }

    private static void test3(Node root) {
        if (root != null) {
            test3(root.left);
            test3(root.right);
            System.out.print(root.content+",");
        }
    }

    private static void test4(Node root) {
        Stack<Node> stack = new Stack<Node>();
        Node current = root;
        while (current != null || !stack.isEmpty()) {
            while (current != null) {
                stack.push(current);
                current = current.left;
            }
            current = stack.peek();
            stack.pop();
            System.out.print(current.content+",");
            current = current.right;
        }
    }

    private static void test5(Node root) {
        Stack<Node> stack = new Stack<Node>();
        Node current = root;
        while (current != null || !stack.isEmpty()) {
            while (current != null) {
                System.out.print(current.content+",");
                stack.push(current);
                current = current.left;
            }
            current = stack.peek();
            stack.pop();
            current = current.right;
        }
    }

    private static void test6(Node root) {
        Stack<Node> stack = new Stack<Node>();
        Node current = root;
        while (current != null || !stack.isEmpty()) {
            while (current != null) {
                stack.push(current);
                current = current.left;
            }
            current = stack.peek();
            stack.pop();
            if (!current.visited) {
                current.visited = true;
                stack.push(current);
                current = current.right;
            } else {
                System.out.print(current.content+",");
                current = null;
            }
        }
    }
}

© 著作权归作者所有

千里山南
粉丝 8
博文 26
码字总数 8030
作品 1
合肥
私信 提问
PHP 源码阅读日记

最近比较闲,正好借这个时间看看PHP源码,有看到不懂的地方会记录一下,之后会把问题以及答案都写下来。 1.C语法生疏需要复习。(后面会写相关复习的内容) (1)struct 结构体 struct是一种数...

起什么name呢
2016/03/30
22
0
小蚂蚁学习数据结构(5)——线性结构——栈的操作演示

复习之前的内容 链表复习: 数据结构: 狭义: 数据结构是专门研究数据存储的问题。 数据的存储包含两方面,个体的存储,个体之间关系的存储。 广义: 数据结构既包含数据的存储也包含数据的...

嗜学如命的小蚂蚁
2016/01/02
115
0
考研-专业课-c语言

为了我家娘子,猪猪臭 本人计划考研:报考学校北京工业大学--计算机 专业课编号985:教材为C语言程序设计案例教程和严蔚敏的数据结构那本 我知道 本书是没有答案的 下面的全都是 自己写的 并在...

20111564
2014/10/16
0
0
大四搞php开发的妹子该怎么准备面试

坐标在广州,年初开始玩php开发,现在大四发现互联网的寒冬里php的工作好难找前几天面了唯品会,面试官问了好多开发过程中的问题,我没有好好复习自己做过的项目,结果记不清于是不停挖坑给自...

waikei
2015/09/18
4.4K
57
希望各位前辈能给指点一下方向,谢谢。

大家好,我是一名软件工程(嵌入式)的大三学生。如果不考研的话,那么我还有一年就要就业了。 可是我感觉我现在什么真材实料都没有学到,虽然学习了很多课程,比如:C语言,编译原理,操作系...

蝴蝶将死
2014/03/05
163
4

没有更多内容

加载失败,请刷新页面

加载更多

用Javascript评估用户输入密码的强度

密码已经是我们生活工作中必不可少的工具,但一个不安全的密码有又有可能会给我们造成不必要的损失。作为网站设计者,如果我们在网页中能对用户输入的密码进行安全评估,并显示出相应的提示信息...

花漾年华
31分钟前
0
0
Python 打开目录与指定文件

Python打开外部文件有很多方法, os.popen打开外部程序,但发现只能打开文件所在目录的文件 os.system可打开外部文件os.system(command) command 要执行的命令,相当于在Windows...

shzwork
33分钟前
2
0
Leetcode # 118:Pascal's Triangle 杨辉三角

118:Pascal's Triangle 杨辉三角 Given a non-negative integer numRows, generate the first numRows of Pascal's triangle. 给定一个非负整数 *numRows,*生成杨辉三角的前 numRows 行。 ......

iCodeBugs
43分钟前
1
0
IntelliJ IDEA导入Gradle项目

1.File > Open 找到项目后选择build.gradle文件,点击ok image 2.点击Open as Project image 3.选择本地Gradle以及JDK image 4.点OK完成...

青峰Jun19er
48分钟前
2
0
Python实现斐波那契数列

斐波那契数列大家都很熟悉吧,咱们在高中学数学的时候,老师会讲这个定律以及算法,其实数据结构和数学息息相关,数学思维好的往往逻辑思维就比较好,今天小猿圈带大家学习一下python的斐波那...

小猿圈加加
49分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部