内心OS:我靠啊!!!我就是偷了一下懒!!!把先序遍历的代码COPY了两份,改成了中序和后序遍历。万万没想到啊!我忘了修改函数中递归函数的名字!!!找这个BUG花了我三个小时~~我哭啊~~,我还以为我的知识体系坍塌了呢?!!~ 总结,这是一道模板题,要先记住大体流程,然后反复练习。 输入格式: 第一 ...
分类:
其他好文 时间:
2020-02-29 00:29:44
阅读次数:
57
题意: 输入一个正整数N(<=30),接着输入两行N个正整数第一行为先序遍历,第二行为后续遍历。输出是否可以构造一棵唯一的二叉树并输出其中一颗二叉树的中序遍历。 trick: 输出完毕中序遍历后须换行,否则所有测试点格式错误。 1 #define HAVE_STRUCT_TIMESPEC 2 #in ...
分类:
其他好文 时间:
2020-02-27 19:09:32
阅读次数:
77
题目 思路 根据先序遍历可以知道第一个字符一定是根节点,然后在中序遍历中,找到对应的根节点,则其左边的字母组成了左子树,右边的字母组成了右子树。 例如示例中: 代码 ...
分类:
其他好文 时间:
2020-02-25 17:35:50
阅读次数:
60
判断树1中是否有树2 思路: 采用递归的方法,先序遍历整棵树,判断当前的树是否有树2,没有的话判断左右子树是否有。 代码: 合并有序链表 思路: 采用递归的方式,每一次都是小的那个节点作为头结点,并且将头结点连接到已排好的节点。 代码: 旋转打印二维数组 思路: 将打印数组一圈作为一个循环,每次循环 ...
分类:
编程语言 时间:
2020-02-24 00:25:31
阅读次数:
71
给两个数组,分别是前序和中序的遍历结果。(数组中没有重复的数字) 首先知道二叉树的便利分别是: 先序遍历:根左右; 中序遍历:左根右; 后续遍历:左右根; 即根在哪一个位置,就是哪一种遍历方式,其中左右的顺序是不变的。 一个经验之谈:涉及到二叉树问题的时候,大部分二叉树问题都可以通过递归方式解决。 ...
分类:
其他好文 时间:
2020-02-22 09:21:03
阅读次数:
65
一、技术总结 1. 这一题是二叉排序树的问题,题目主要是给出二叉排序树的先序遍历或者二叉排序树镜像的先序遍历或其他,如果是前两种输出YES,并且输出各自的后序遍历。后者直接输出NO 2. 关键在于创建树,据我观察发现无论是镜像的先序遍历还是原来二叉排序树的先序遍历,可以直接根据二叉排序树的特点进行树 ...
分类:
其他好文 时间:
2020-02-19 23:57:49
阅读次数:
114
一、先序遍历 第一个一定是根结点 1. 递归式:就是先序递归的定义 2. 递归边界:二叉树中递归边界是二叉树为一棵空树 二、中序遍历 只要知道根结点就可以通过根结点在中序遍历的序列中位置分出为左子树和右子树 1. 递归式:就是中序递归的定义 2. 递归边界:二叉树中递归边界是二叉树为一棵空树 三、后 ...
分类:
其他好文 时间:
2020-02-14 22:30:45
阅读次数:
82
给定一棵二叉搜索树的先序遍历序列,要求你找出任意两结点的最近公共祖先结点(简称 LCA)。 输入格式: 输入的第一行给出两个正整数:待查询的结点对数 M(≤ 1 000)和二叉搜索树中结点个数 N(≤ 10 000)。随后一行给出 N 个不同的整数,为二叉搜索树的先序遍历序列。最后 M 行,每行给出 ...
分类:
其他好文 时间:
2020-02-13 14:59:07
阅读次数:
185
树其实在本质上就是一对多,链表就是一对一。 二叉树的建立: 这里的代码采用的是最粗暴的创建方法,无实际用处。但初次学习二叉树可以通过这个创建方法更好的理解二叉树。 二叉树的遍历: 遍历在大体上分为递归遍历和非递归遍历。 遍历总共三种遍历顺序: 1.先序遍历:根,左,右 2.中序遍历:左,根,右 3. ...
分类:
编程语言 时间:
2020-02-01 00:49:01
阅读次数:
99
二叉树创建 先序线索、中序线索,通过线索进行的 先序遍历、中序遍历。 main.cpp: #include <iostream> #include <queue> #include "ThreadedBinaryTree.h" using namespace std; int main() { qu ...
分类:
其他好文 时间:
2020-01-31 23:14:09
阅读次数:
145