《数据结构》5 二叉树
实践能力
鹏不是这个朋
本 sdut 硕 szu
展开
-
A - 数据结构实验之查找一:二叉排序树
Description对应给定的一个序列可以唯一确定一棵二叉排序树。然而,一棵给定的二叉排序树却可以由多种不同的序列得到。例如分别按照序列{3,1,4}和{3,4,1}插入初始为空的二叉排序树,都得到一样的结果。你的任务书对于输入的各种序列,判断它们是否能生成一样的二叉排序树。Input输入包含若干组测试数据。每组数据的第1行给出两个正整数N (n < = 10)和L,分别是输入序列的元素个数和需要比较的序列个数。第2行给出N个以空格分隔的正整数,作为初始插入序列生成一颗二叉排序树。随后L行,每原创 2020-12-02 08:55:19 · 430 阅读 · 0 评论 -
数据结构实验之二叉树一:树的同构
数据结构实验之二叉树一:树的同构Description给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,请你判断它们是否是同构的。Input输入数据包含多组,每组数据给出2棵二叉树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从0到N−1编号);随后N行,第i行对应编原创 2020-11-12 23:10:48 · 120 阅读 · 0 评论 -
数据结构实验之二叉树六:哈夫曼编码
Description字符的编码方式有多种,除了大家熟悉的ASCII编码,哈夫曼编码(Huffman Coding)也是一种编码方式,它是可变字长编码。该方法完全依据字符出现概率来构造出平均长度最短的编码,称之为最优编码。哈夫曼编码常被用于数据文件压缩中,其压缩率通常在20%~90%之间。你的任务是对从键盘输入的一个字符串求出它的ASCII编码长度和哈夫曼编码长度的比值。Input输入数据有多组,每组数据一行,表示要编码的字符串。Output对应字符的ASCII编码长度la,huffman编码长度原创 2020-11-12 22:00:25 · 301 阅读 · 0 评论 -
巨斧砍大树
Description阿福最近练就了一个新的招式:巨斧砍大树。这个招式可以砍掉一颗二叉搜索树的某个子树。现在,阿福面前有一颗 nn 个结点的二叉搜索树,他要使用 mm 次招式,于是他想询问你每次使用「巨斧砍大树」后二叉搜索树会被砍成什么样子。二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉搜索树。Input第一行输入 22 个整数 nn, mm原创 2020-11-02 09:18:43 · 226 阅读 · 0 评论 -
迷失の搜索树
Description小璐在机缘巧合之下获得了一个二叉搜索树,这个二叉搜索树恰好有n个节点,每个节点有一个权值,每个节点的权值都在[1,n]这个区间内,并且两两不相同,真是优美的性质啊但是命运的不公又让她失去了这个二叉搜索树幸运的是,她还记得自己丢失的二叉搜索树的前序遍历序列。在丢了二叉搜索树之后,小璐无比想念她的这个树的后序遍历那么问题来了,聪明的你在知道这个二叉搜索树的前序遍历的序列的情况下,能帮她找到这个二叉搜索树的后序遍历嘛?Input多组输入,以文件结尾每组数据第一行为一个整数n,原创 2020-10-31 14:32:27 · 71 阅读 · 0 评论 -
二叉树(前序遍历序列、中序遍历序列、后序遍历序列、层次遍历序列、深度、叶子数)
Description已知二叉树的一个按前序遍历输入的字符序列,如abc,de,g,f, (其中,表示空结点)。请建立二叉树,并输出建立二叉树的前序遍历序列、中序遍历序列、后序遍历序列、层次遍历序列、深度、叶子数。Input多组测试数据,对于每组测试数据,输入一个长度小于50的按前序遍历输入的字符序列。Output对于每组测试数据,第1行输出其前序遍历序列、第2行输出其中序遍历序列、第3行输出其后序遍历序列、第4行输出其深度、第5行输出其叶子数。SampleInputabc,de,g,f,原创 2020-10-31 14:32:50 · 1141 阅读 · 0 评论 -
数据结构实验之二叉树七:叶子问题
Description已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点)。请建立该二叉树并按从上到下从左到右的顺序输出该二叉树的所有叶子结点。Input输入数据有多行,每一行是一个长度小于50个字符的字符串。Output按从上到下从左到右的顺序输出二叉树的叶子结点。SampleInputabd,eg,cf,xnl,i,u,OutputdfguliHint#include<bits/stdc++.h>using namespace std;原创 2020-10-31 14:32:33 · 131 阅读 · 0 评论 -
数据结构实验之二叉树五:层序遍历(STL和模拟队列两种方法)
Description已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。Input输入数据有多行,第一行是一个整数t (t<1000),代表有t行测试数据。每行是一个长度小于50个字符的字符串。Output输出二叉树的层次遍历序列。SampleInput2abd,eg,cf,xnl,i,u,OutputabcdefgxnuliHint#include<bits/stdc++.h>using na原创 2020-10-31 14:32:36 · 433 阅读 · 0 评论 -
数据结构实验之二叉树八:(中序后序)求二叉树的深度
Description已知一颗二叉树的中序遍历序列和后序遍历序列,求二叉树的深度。Input输入数据有多组,输入T,代表有T组数据。每组数据包括两个长度小于50的字符串,第一个字符串表示二叉树的中序遍历,第二个表示二叉树的后序遍历。Output输出二叉树的深度。SampleInput2dbgeafcdgebfcalnixulinuxOutput43#include<bits/stdc++.h>using namespace std;typedef stru原创 2020-10-30 14:26:05 · 244 阅读 · 0 评论 -
数据结构实验之二叉树四:(先序中序)还原二叉树
Description给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。Input输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。Output输出一个整数,即该二叉树的高度。SampleInput9ABDFGHIECFDHGIBEACOutput5#include<bits/stdc++.h>using原创 2020-10-30 14:16:31 · 577 阅读 · 0 评论 -
数据结构实验之二叉树三:统计叶子数
Description已知二叉树的一个按先序遍历输入的字符序列,如abc,de,g,f, (其中,表示空结点)。请建立二叉树并求二叉树的叶子结点个数。Input连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。Output输出二叉树的叶子结点个数。SampleInputabc,de,g,f,Output3Hint#include<bits/stdc++.h>using namespace std;typedef struct node{ cha原创 2020-10-30 14:11:37 · 151 阅读 · 0 评论 -
数据结构实验之二叉树二:遍历二叉树
Description已知二叉树的一个按先序遍历输入的字符序列,如abc,de,g,f, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。Input连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。Output每组输入数据对应输出2行:第1行输出中序遍历序列;第2行输出后序遍历序列。SampleInputabc,de,g,f,OutputcbegdfacgefdbaHint#include<bits/stdc++.h>using原创 2020-10-30 14:12:15 · 264 阅读 · 0 评论