![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
二叉树_《数据结构》
数据结构之二叉树的基本操作
笑着找bug
这个作者很懒,什么都没留下…
展开
-
AB - 二叉树的三种建树方法,四种遍历方法
根据已知先序遍历建立二叉树(带空结点)Tree* buildtree_pre(){ if(pre[cnt]==',') { cnt++; return NULL; } Tree *root = new Tree; root->data=pre[cnt++]; root->l=buildtree_pre(); root->r=buildtree_pre(); return root;...原创 2020-11-02 15:34:09 · 444 阅读 · 0 评论 -
AA - 二叉树的基本操作代码
#include <iostream>#include <bits/stdc++.h>using namespace std;char pre[55];int cnt=0;struct node{ char data; node *r,*l;};/**函数名:buildtrees*功能:根据先序遍历建立二叉树*/node* buildtrees(){ node *root; if(pre[cnt]==',') {原创 2020-10-30 17:06:32 · 203 阅读 · 1 评论 -
F - 数据结构实验之二叉树六:哈夫曼编码
Description字符的编码方式有多种,除了大家熟悉的ASCII编码,哈夫曼编码(Huffman Coding)也是一种编码方式,它是可变字长编码。该方法完全依据字符出现概率来构造出平均长度最短的编码,称之为最优编码。哈夫曼编码常被用于数据文件压缩中,其压缩率通常在20%~90%之间。你的任务是对从键盘输入的一个字符串求出它的ASCII编码长度和哈夫曼编码长度的比值。Input输入数据有多组,每组数据一行,表示要编码的字符串。Output对应字符的ASCII编码长度la,huffman编码长度原创 2020-11-15 21:40:27 · 316 阅读 · 0 评论 -
K - 巨斧砍大树
Description阿福最近练就了一个新的招式:巨斧砍大树。这个招式可以砍掉一颗二叉搜索树的某个子树。现在,阿福面前有一颗 nn 个结点的二叉搜索树,他要使用 mm 次招式,于是他想询问你每次使用「巨斧砍大树」后二叉搜索树会被砍成什么样子。二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉搜索树。Input第一行输入 22 个整数 nn, mm原创 2020-11-15 17:58:00 · 197 阅读 · 0 评论 -
J - 迷失の搜索树
Description小璐在机缘巧合之下获得了一个二叉搜索树,这个二叉搜索树恰好有n个节点,每个节点有一个权值,每个节点的权值都在[1,n]这个区间内,并且两两不相同,真是优美的性质啊但是命运的不公又让她失去了这个二叉搜索树幸运的是,她还记得自己丢失的二叉搜索树的前序遍历序列。在丢了二叉搜索树之后,小璐无比想念她的这个树的后序遍历那么问题来了,聪明的你在知道这个二叉搜索树的前序遍历的序列的情况下,能帮她找到这个二叉搜索树的后序遍历嘛?Input多组输入,以文件结尾每组数据第一行为一个整数n,原创 2020-11-15 17:44:21 · 90 阅读 · 0 评论 -
二叉排序树 oj 2482
二叉排序树Description二叉排序树的定义是:或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 今天我们要判断两序列是否为同一二叉排序树Input开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造原创 2020-11-15 16:37:54 · 130 阅读 · 0 评论 -
树结构练习——排序二叉树的中序遍历
Description在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是——(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的话)的关键值小于该节点的关键值 (3).任意一个节点的右子树(如果存在的话)的关键值大于该节点的关键值。现给定一组数据,请你对这组数据按给定顺序建立一棵排序二叉树,并输出其中序遍历的结果。Input输入包含多组数据,每组数据格式如下。第一行包含一个整数n,为关键值的个数,关键值用整数表示。(n<=1000)第二行包含n个整数,保证每原创 2020-11-15 15:46:13 · 139 阅读 · 0 评论 -
G - 数据结构实验之二叉树七:叶子问题
Description已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点)。请建立该二叉树并按从上到下从左到右的顺序输出该二叉树的所有叶子结点。Input输入数据有多行,每一行是一个长度小于50个字符的字符串。Output按从上到下从左到右的顺序输出二叉树的叶子结点。SampleInputabd,eg,cf,xnl,i,u,Outputdfguli#include <iostream>#include <bits/stdc++.h>原创 2020-11-13 21:35:20 · 125 阅读 · 0 评论 -
A - 数据结构实验之二叉树一:树的同构
Description给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,请你判断它们是否是同构的。Input输入数据包含多组,每组数据给出2棵二叉树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从0到N−1编号);随后N行,第i行对应编号第i个结点,给出该结点中存储的1原创 2020-11-13 20:51:47 · 143 阅读 · 0 评论 -
I - 二叉树
Description已知二叉树的一个按前序遍历输入的字符序列,如abc,de,g,f, (其中,表示空结点)。请建立二叉树,并输出建立二叉树的前序遍历序列、中序遍历序列、后序遍历序列、层次遍历序列、深度、叶子数。Input多组测试数据,对于每组测试数据,输入一个长度小于50的按前序遍历输入的字符序列。Output对于每组测试数据,第1行输出其前序遍历序列、第2行输出其中序遍历序列、第3行输出其后序遍历序列、第4行输出其深度、第5行输出其叶子数。SampleInputabc,de,g,f,原创 2020-10-31 21:09:38 · 213 阅读 · 0 评论 -
E - 数据结构实验之二叉树五:层序遍历
Description已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。Input输入数据有多行,第一行是一个整数t (t<1000),代表有t行测试数据。每行是一个长度小于50个字符的字符串。Output输出二叉树的层次遍历序列。SampleInput2abd,eg,cf,xnl,i,u,OutputabcdefgxnuliHint#include <iostream>#include <原创 2020-10-31 19:55:23 · 175 阅读 · 1 评论 -
D - 数据结构实验之二叉树四:(先序中序)还原二叉树
Description给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。Input输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。Output输出一个整数,即该二叉树的高度。SampleInput9ABDFGHIECFDHGIBEACOutput5#include <iostream>#include &l原创 2020-10-30 17:22:51 · 252 阅读 · 0 评论 -
C - 数据结构实验之二叉树三:统计叶子数
Description已知二叉树的一个按先序遍历输入的字符序列,如abc,de,g,f, (其中,表示空结点)。请建立二叉树并求二叉树的叶子结点个数。Input连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。Output输出二叉树的叶子结点个数。SampleInputabc,de,g,f,Output3Hint#include <iostream>#include <bits/stdc++.h>using namespace std;c原创 2020-10-30 17:04:30 · 172 阅读 · 0 评论 -
B - 数据结构实验之二叉树二:遍历二叉树
Description已知二叉树的一个按先序遍历输入的字符序列,如abc,de,g,f, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。Input连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。Output每组输入数据对应输出2行:第1行输出中序遍历序列;第2行输出后序遍历序列。SampleInputabc,de,g,f,OutputcbegdfacgefdbaHint#include <iostream>#include &l原创 2020-10-30 17:02:08 · 244 阅读 · 0 评论