![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构——树
勿忘初心丶
这个作者很懒,什么都没留下…
展开
-
已知中序和前序(或后序)遍历结果生成树
这种题一般有二种形式,共同点是都已知中序序列。如果没有中序序列,是无法唯一确定一棵树的,证明略。一、已知二叉树的前序序列和中序序列,求解树。1、确定树的根节点。树根是当前树中所有元素在前序遍历中最先出现的元素。2、求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都转载 2016-08-10 09:14:55 · 4924 阅读 · 0 评论 -
数据结构实验之二叉树三:统计叶子数
SDUT原题链接:点击打开链接所谓的叶子就是没有孩子的节点,只需要一次任意序列的遍历然后根据此时节点的左孩子和右孩子的值是不是NULL就可以判定是不是叶子i,算是整个树里最简单最水的一个#include #include using namespace std;char ch[100];int cnt, num;struct node{ cha原创 2016-10-28 16:13:25 · 536 阅读 · 0 评论 -
数据结构实验之二叉树二:遍历二叉树
SDUT原题:点击打开链接中序遍历:顾名思义就是先访问左子树,再访问根,最后访问右子树后续遍历:先访问左子树,在访问右子树,最后访问根这个序就是按照根的节点来排序的#include #include using namespace std;char ch[100];int cnt;struct node{ char data; struct原创 2016-10-28 16:08:46 · 300 阅读 · 0 评论 -
数据结构实验之二叉树六:哈夫曼编码
数据结构实验之二叉树六:哈夫曼编码Time Limit: 1000MS Memory Limit: 65536KBSubmit StatisticProblem Description字符的编码方式有多种,除了大家熟悉的ASCII编码,哈夫曼编码(Huffman Coding)也是一种编码方式,它是可变字长编码。该方法完全依据字符出现概率来构造出平均长度最短的编码,原创 2016-11-04 18:58:26 · 1599 阅读 · 0 评论 -
数据结构实验之二叉树七:叶子问题
数据结构实验之二叉树七:叶子问题Time Limit: 1000MS Memory Limit: 65536KBSubmit StatisticProblem Description已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立该二叉树并按从上到下从左到右的顺序输出该二叉树的所有叶子结点。Input 输原创 2016-11-03 21:02:45 · 294 阅读 · 0 评论 -
数据结构实验之二叉树五:层序遍历
数据结构实验之二叉树五:层序遍历Time Limit: 1000MS Memory Limit: 65536KBSubmit StatisticProblem Description已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。Input 输入数据有多行,第一行是一个整数原创 2016-11-03 20:50:19 · 5751 阅读 · 1 评论 -
数据结构实验之二叉树四:还原二叉树
数据结构实验之二叉树四:还原二叉树Time Limit: 1000MS Memory Limit: 65536KBSubmit StatisticProblem Description给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。Input输入数据有多组,每组数据第一行输入1个正整数N(1 为树中结点总数,随后2行先后给出先原创 2016-11-03 20:11:51 · 376 阅读 · 0 评论 -
二叉树前序、中序、后序遍历相互求法
今天来总结下二叉树前序、中序、后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我们分别说明。首先,我们看看前序、中序、后序遍历的特性: 前序遍历: 1.访问根节点 2.前序遍历左子树 3.前序遍历右子树 中序遍历: 1.中序遍历左子树转载 2016-08-10 09:09:14 · 214 阅读 · 0 评论 -
二叉排序树
二叉排序树Time Limit: 1000MS Memory limit: 65536K题目描述二叉排序树的定义是:或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 今天我们要判断两序列是否为原创 2016-08-11 20:33:35 · 174 阅读 · 0 评论 -
数据结构实验之二叉树一:树的同构
题目描述给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图1 图2现给定两棵树,请你判断它们是否是同构的。输入 输入数据包含多组,每原创 2016-08-13 21:45:12 · 377 阅读 · 0 评论 -
数据结构实验之查找二:平衡二叉树
题目描述根据给定的输入序列建立一棵平衡二叉树,求出建立的平衡二叉树的树根。输入输入一组测试数据。数据的第1行给出一个正整数N(n 表示输入序列的元素个数;第2行给出N个正整数,按数据给定顺序建立平衡二叉树。输出输出平衡二叉树的树根。示例输入588 70 61 96 120示例输出70原创 2016-08-13 19:42:11 · 311 阅读 · 0 评论 -
平衡二叉树
平衡二叉树(解惑)平衡二叉树定义(AVL):它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。平衡因子(bf):结点的左子树的深度减去右子树的深度,那么显然-1很显然,平衡二叉树是在二叉排序树(BST)上引入的,就是为了解决二叉排序树的不平衡性导致时间复杂度大大下降,那么AVL就保持住了(BST)的最好转载 2016-08-12 21:56:57 · 279 阅读 · 0 评论 -
判断二叉树是否同构
思路:利用树的递归性质,两棵树,只要左右儿子树分别同构,则这两棵树就同构了。 用同样的遍历方式,同时遍历两个树,若一个到了叶子节点NULL, 而另一个却没有,则表示,这两棵树不同构了。 代码:bool isSameTree(node* root1, node* root2){ if (root1 == NULL && root转载 2016-08-11 21:22:07 · 2523 阅读 · 0 评论 -
数据结构实验之查找三:树的种类统计
数据结构实验之查找三:树的种类统计Time Limit: 400MS Memory limit: 65536K题目描述随着卫星成像技术的应用,自然资源研究机构可以识别每一个棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。输入输入一组测试数据。数据的第1行给出一个正整数N (n 输出原创 2016-08-12 10:27:44 · 265 阅读 · 0 评论