一、二叉树基本知识 二、二叉树先序遍历 题目: 输入一个整数n,表示二叉树中结点个数,编号为1~n。1号结点为二叉树的根节点。然后输入n行,每行包括两个整数,第i行表示编号为i的结点的左、右子节点的编号。如果某个结点没有左或右子节点,那么对应行的第一、二个整数为0。输出此二叉树的先序遍历,每行输出一 ...
分类:
其他好文 时间:
2020-08-26 18:33:00
阅读次数:
50
非递归解法 递归解法比较简单,是考察概念,放在文章末尾来说。 用递归方法能解决的问题都能用非递归方法来实现,因为递归方法无非就是用函数栈来保存信息,如果用自己申请的数据结构来代替函数栈,也可以实现一样的功能 步骤: 1.申请一个栈,将头节点head压入栈中 2.从stack中弹出结点,记为temp, ...
分类:
其他好文 时间:
2020-06-30 00:41:42
阅读次数:
57
线索二叉树(找前驱/后继) 建立线索的初衷就是为了在一个结点中能够更方便找到前驱结点和后继结点。 中序线索二叉树 先序线索二叉树 后序线索二叉树 中序线索二叉树找中序后继 //找到以p为跟的子树中,第一个被中序遍历的结点 ThreadNode *Firstnode(ThreadNode *p){ / ...
分类:
其他好文 时间:
2020-06-28 12:47:39
阅读次数:
107
/** * * 【问题】 * 二叉树的反序列化 * 通过文件内容重建原来的二叉树 * 【解析】 * 把结果字符串str变成字符串类型的数组,记为values, 数组代表一棵二叉树先序遍历 * 的节点顺序。例如, str= "l2!3!#!#!#!中,生成的values为["12","3","#"," ...
分类:
其他好文 时间:
2020-04-24 13:12:51
阅读次数:
73
问题描述: 用递归方式实现二叉树的先序、中序、后序遍历。 算法实现: //二叉树节点private class Node { public int value; public Node left; public Node right; public Node(int value) { this.va ...
分类:
其他好文 时间:
2020-04-08 22:52:52
阅读次数:
136
内心OS:我靠啊!!!我就是偷了一下懒!!!把先序遍历的代码COPY了两份,改成了中序和后序遍历。万万没想到啊!我忘了修改函数中递归函数的名字!!!找这个BUG花了我三个小时~~我哭啊~~,我还以为我的知识体系坍塌了呢?!!~ 总结,这是一道模板题,要先记住大体流程,然后反复练习。 输入格式: 第一 ...
分类:
其他好文 时间:
2020-02-29 00:29:44
阅读次数:
57
题目描述 求一颗树的后序遍历的非递归算法 要求:必须是非递归算法,使用堆栈对象来实现 建树方法采用“先序遍历+空树用0表示”的方法 算法流程: 输入 第一行输入一个整数t,表示有t个测试数据 第二行起输入二叉树先序遍历的结果,空树用字符‘0’表示,输入t行 输出 逐行输出每个二叉树的后序遍历结果 样 ...
分类:
编程语言 时间:
2020-01-12 18:41:25
阅读次数:
91
先序、中序 中序、后序 可以确定唯一一棵二叉树。 例子: 根据后序、中序序列确定二叉树: ...
分类:
其他好文 时间:
2019-11-13 00:29:51
阅读次数:
56
先序遍历的操作如下: 1)访问根节点; 2)先序遍历左子树; 3)先序遍历右子树; 对应的递归算法如下: 对应的非递归算法如下: ...
分类:
其他好文 时间:
2019-10-29 23:46:02
阅读次数:
102
``` void PreOrderWithoutRecursion1(BTNode root) { if (root == NULL) return; BTNode p = root; stack s; while(p||!s.empty()) { //边遍历边打印,并存入栈中,以后需要借助这些根节 ...
分类:
其他好文 时间:
2019-10-24 15:23:15
阅读次数:
78