二叉树
shadowam
这个作者很懒,什么都没留下…
展开
-
acm sdut 迷失の搜索树(实际上就是建一个二叉排序树)
Problem Description小璐在机缘巧合之下获得了一个二叉搜索树,这个二叉搜索树恰好有n个节点,每个节点有一个权值,每个节点的权值都在[1,n]这个区间内,并且两两不相同,真是优美的性质啊但是命运的不公又让她失去了这个二叉搜索树幸运的是,她还记得自己丢失的二叉搜索树的前序遍历序列。在丢了二叉搜索树之后,小璐无比想念她的这个树的后序遍历那么问题来了,聪明的你在知道原创 2017-02-16 19:03:00 · 269 阅读 · 0 评论 -
数据结构实验之查找二:平衡二叉树
Problem Description根据给定的输入序列建立一棵平衡二叉树,求出建立的平衡二叉树的树根。Input输入一组测试数据。数据的第1行给出一个正整数N(n Output输出平衡二叉树的树根。Example Input588 70 61 96 120Example Output70code原创 2017-12-13 15:23:40 · 191 阅读 · 0 评论 -
数据结构实验之查找一:二叉排序树
Problem Description对应给定的一个序列可以唯一确定一棵二叉排序树。然而,一棵给定的二叉排序树却可以由多种不同的序列得到。例如分别按照序列{3,1,4}和{3,4,1}插入初始为空的二叉排序树,都得到一样的结果。你的任务书对于输入的各种序列,判断它们是否能生成一样的二叉排序树。Input输入包含若干组测试数据。每组数据的第1行给出两个正整数N (n原创 2017-12-13 14:24:14 · 202 阅读 · 0 评论 -
数据结构实验之二叉树六:哈夫曼编码
Problem Description字符的编码方式有多种,除了大家熟悉的ASCII编码,哈夫曼编码(Huffman Coding)也是一种编码方式,它是可变字长编码。该方法完全依据字符出现概率来构造出平均长度最短的编码,称之为最优编码。哈夫曼编码常被用于数据文件压缩中,其压缩率通常在20%~90%之间。你的任务是对从键盘输入的一个字符串求出它的ASCII编码长度和哈夫曼编码长度的比值。原创 2017-11-06 12:04:36 · 187 阅读 · 0 评论 -
数据结构实验之二叉树一:树的同构
Problem Description给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图1 图2现给定两棵树,请你判断它们是否是同构的。Input 输入数据原创 2017-11-05 10:50:40 · 185 阅读 · 0 评论 -
数据结构实验之二叉树八:(中序后序)求二叉树的深度
Problem Description已知一颗二叉树的中序遍历序列和后序遍历序列,求二叉树的深度。Input输入数据有多组,输入T,代表有T组数据。每组数据包括两个长度小于50的字符串,第一个字符串表示二叉树的中序遍历,第二个表示二叉树的后序遍历。Output输出二叉树的深度。Example Input2dbgeafcdgeb原创 2017-11-01 15:21:47 · 445 阅读 · 0 评论 -
数据结构实验之二叉树四:(先序中序)还原二叉树
Problem Description给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。Input输入数据有多组,每组数据第一行输入1个正整数N(1 Output 输出一个整数,即该二叉树的高度。Example Input9 ABDFGHIECFDHGIBEACExample Output原创 2017-11-01 15:07:02 · 195 阅读 · 0 评论 -
已知中序和后序||前序, 求前,后,层序遍历问题
感觉全是套路==这里只给出重构二叉树的函数,之后只需要遍历就行了code:struct node *rebuild(char *a, char *b, int n)//a为已知中序,b为已知后序{struct node *root;int i;if(n==0) return NULL;root = (struct node*)malloc(sizeof(stru原创 2017-02-15 20:59:14 · 929 阅读 · 0 评论 -
数据结构实验之二叉树七:叶子问题
Problem Description已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立该二叉树并按从上到下从左到右的顺序输出该二叉树的所有叶子结点。Input 输入数据有多行,每一行是一个长度小于50个字符的字符串。Output 按从上到下从左到右的顺序输出二叉树的叶子结点。Example Input原创 2017-11-01 14:28:08 · 370 阅读 · 0 评论 -
acm sdut 数据结构实验之二叉树的建立与遍历
Problem Description 已知一个按先序序列输入的字符序列,如abc,,de,g,,f,,,(其中逗号表示空节点)。请建立二叉树并按中序和后序方式遍历二叉树,最后求出叶子节点个数和二叉树深度。Input 输入一个长度小于50个字符的字符串。Output输出共有4行:第1行输出中序遍历序列;第2行输出后序遍历序列;第3行输出叶子节点个原创 2017-02-16 09:37:35 · 285 阅读 · 0 评论 -
求二叉树的叶子结点个数及深度
只给出函数void countleaf(struct node *root)//统计叶子数;{ if(root) { if((!root->lchild)&&(!root->rchild)) { count++; } countleaf(root->lchild); c原创 2017-02-16 09:09:52 · 4740 阅读 · 0 评论 -
关于二叉树的基本操作
只涉及二叉树的建立以及前序,中序,后序便利;其中当读到','时表示此节点为空。#include#includetypedef struct BiTNode{ char data; struct BiTNode *lchild, *rchild;}BiTNode, *BiTree;int creatBiTree(BiTree &T){ c原创 2017-02-15 09:24:48 · 212 阅读 · 0 评论 -
二叉树层序遍历
Problem Description已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。Input 输入数据有多行,第一行是一个整数t (t,代表有t行测试数据。每行是一个长度小于50个字符的字符串。Output 输出二叉树的层次遍历序列。Example Input2原创 2017-02-15 10:27:49 · 507 阅读 · 0 评论 -
二叉树层序遍历的c++写法
void LevelOrder(struct node *root)//运用队列(注意头文件引用){ queueq; struct node *p = root; if(p) { q.push(p); } while(!q.empty()) { p = q.front();原创 2017-02-21 15:10:00 · 1980 阅读 · 0 评论 -
acm sdut 数据结构实验之查找一:二叉排序树
Time Limit: 400MS Memory Limit: 65536KBProblem Description对应给定的一个序列可以唯一确定一棵二叉排序树。然而,一棵给定的二叉排序树却可以由多种不同的序列得到。例如分别按照序列{3,1,4}和{3,4,1}插入初始为空的二叉排序树,都得到一样的结果。你的任务书对于输入的各种序列,判断它们是否能生成一样的二叉排序树。原创 2017-02-16 19:04:24 · 250 阅读 · 0 评论 -
数据结构实验之查找三:树的种类统计
Problem Description随着卫星成像技术的应用,自然资源研究机构可以识别每一个棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。Input输入一组测试数据。数据的第1行给出一个正整数N (n Output按字典序输出各种树的种类名称和它占的百分比,中间以空格间隔,小数点后保留两位小数。Exampl原创 2017-12-13 15:45:01 · 218 阅读 · 0 评论