博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
汉诺塔+二叉树(前序,中序,后序)
阅读量:4039 次
发布时间:2019-05-24

本文共 1940 字,大约阅读时间需要 6 分钟。

/**     * 汉诺塔     *     * @param n      盘子的个数     * @param start  开始的柱子     * @param middle 中介柱子     * @param end    结果柱子     */    public static void towerOfHanoi(int n, int start, int middle, int end) {        if (n <= 1) {            System.out.println(start + "----->" + end);        } else {            towerOfHanoi(n - 1, start, end, middle);            System.out.println(start + "----->" + end);            towerOfHanoi(n - 1, middle, start, end);        }    }

测试打印结果:

 二叉树

Node
root = new Node<>(null, null, null); /** * 中序访问树的所有节点 */ public void midOrderTraverse(Node root) {//逻辑 if (root == null) { return; } //LDR midOrderTraverse(root.leftChild);//逻辑 System.out.println("mid:" + root.data);//输出 midOrderTraverse(root.rightChild);//逻辑 } /** * 前序访问树的所有节点 */ public void preOrderTraverse(Node root) { if (root == null) { return; } //DLR System.out.println("pre:" + root.data); preOrderTraverse(root.leftChild); preOrderTraverse(root.rightChild); } /** * 后序访问树的所有节点 */ public void postOrderTraverse(Node root) { if (root == null) { return; } //LRD postOrderTraverse(root.leftChild); postOrderTraverse(root.rightChild); System.out.println("post:" + root.data); } /** * 节点 */ public static class Node
{ T data; Node
leftChild; Node
rightChild; public Node(T data, Node
leftChild, Node
rightChild) { this.data = data; this.leftChild = leftChild; this.rightChild = rightChild; } }

前序   (DLR)

    若二叉树为空,则空操作返回,否则先访问跟结点,然后前序遍历左子树,再前序遍历右子树

   

 中序   (LDR)

        若树为空,则空操作返回,否则从根结点开始(注意并不是先访问根结点),

中序遍历根结点的左子树,然后是访问根结点,最后中序遍历右子树

后续    (LRD)

      若树为空,则空操作返回,否则从左到右先叶子后结点的方式遍历访问左右子树,最后是访问根结点

 

注:上述只贴出了部分代码和图,可能需要有点基础的同学。 

转载地址:http://uujdi.baihongyu.com/

你可能感兴趣的文章
cppcheck c++静态代码检查
查看>>
在C++中使用Lua
查看>>
C++中使用Mongo执行count和distinct运算
查看>>
一些socket的编程经验
查看>>
socket编程中select的使用
查看>>
关于AIS编码解码的两个小问题
查看>>
GitHub 万星推荐:黑客成长技术清单
查看>>
可以在线C++编译的工具站点
查看>>
关于无人驾驶的过去、现在以及未来,看这篇文章就够了!
查看>>
所谓的进步和提升,就是完成认知升级
查看>>
昨夜今晨最大八卦终于坐实——人类首次直接探测到了引力波
查看>>
如何优雅、机智地和新公司谈薪水?
查看>>
为什么读了很多书,却学不到什么东西?
查看>>
长文干货:如何轻松应对工作中最棘手的13种场景?
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>
No.147 - LeetCode1108
查看>>
No.174 - LeetCode1305 - 合并两个搜索树
查看>>
No.175 - LeetCode1306
查看>>
No.176 - LeetCode1309
查看>>
No.182 - LeetCode1325 - C指针的魅力
查看>>