树
WY5421
这个作者很懒,什么都没留下…
展开
-
数据结构实验之求二叉树后序遍历和层次遍历
#include #include #include typedef struct tnode{ char data; tnode *lc,*rc;}*tree;void build(tree &t,char *he,char *mid,int len) //数组用字符来代替{ if(len==0) t=NULL; //递归停止条件 else原创 2016-08-22 20:42:55 · 341 阅读 · 0 评论 -
树、森林与二叉树相互转化原理图
1、树转换为二叉树由于二叉树是有序的,为了避免混淆,对于无序树,我们约定树中的每个结点的孩子结点按从左到右的顺序进行编号。将树转换成二叉树的步骤是:(1)加线。就是在所有兄弟结点之间加一条连线;(2)抹线。就是对树中的每个结点,只保留他与第一个孩子结点之间的连线,删除它与其它孩子结点之间的连线;(3)旋转。就是以树的根结点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。...转载 2018-12-05 21:22:45 · 2423 阅读 · 5 评论 -
数据结构实验之查找一:二叉排序树
Problem Description对应给定的一个序列可以唯一确定一棵二叉排序树。然而,一棵给定的二叉排序树却可以由多种不同的序列得到。例如分别按照序列{3,1,4}和{3,4,1}插入初始为空的二叉排序树,都得到一样的结果。你的任务书对于输入的各种序列,判断它们是否能生成一样的二叉排序树。Input输入包含若干组测试数据。每组数据的第1行给出两个正整数N (n < = 10)和L,分别是...原创 2018-07-15 15:39:09 · 265 阅读 · 0 评论 -
数据结构实验之二叉树六:哈夫曼编码
http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/1845/pid/3345#include #include #include #include using namespace std;int main(){ priority_queue, greater >q;原创 2016-10-25 21:41:49 · 625 阅读 · 0 评论 -
哈夫曼树与哈夫曼编码(前缀编码)理解
一、哈夫曼树定义及用途哈夫曼树又称最优二叉树,是带权路径长度(WPL)最短的树,可以构造最优编码,用于数据传输,数据压缩等方向下面是二叉树和哈夫曼树二、概念路径:树中一个结点到另一个结点之间的分支序列构成两个结点间的路径路径长度:路径上的分支数目树的路径长度:树根到每个结点的路径长度的和结点带权路径长度:结点到树根的路径长度与结点的权的乘积树的带权路径长度:树中所以叶子结点的带权路径长度之和(WP...转载 2018-07-15 13:19:52 · 1853 阅读 · 0 评论 -
数据结构实验之二叉树八:(中序后序)求二叉树的深度
Problem Description已知一颗二叉树的中序遍历序列和后序遍历序列,求二叉树的深度。Input输入数据有多组,输入T,代表有T组数据。每组数据包括两个长度小于50的字符串,第一个字符串表示二叉树的中序遍历,第二个表示二叉树的后序遍历。Output输出二叉树的深度。Sample Input2dbgeafcdgebfcalnixulinuxSample Output43#inc...原创 2018-07-14 19:19:38 · 292 阅读 · 0 评论 -
数据结构实验之二叉树四:(先序中序)还原二叉树
Problem Description给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。Input输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。 Output 输出一个整数,即该二叉树的高度。Sample Input9 ABDFGH...原创 2018-07-14 12:59:46 · 378 阅读 · 0 评论 -
数据结构实验之二叉树五:层序遍历
Problem Description已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。Input 输入数据有多行,第一行是一个整数t (t<1000),代表有t行测试数据。每行是一个长度小于50个字符的字符串。Output 输出二叉树的层次遍历序列。Sample Input2abd,,eg,,,cf,,,xnl,,...原创 2018-07-14 10:09:02 · 289 阅读 · 0 评论 -
数据结构实验之二叉树二:遍历二叉树
Problem Description已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。Input连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。Output每组输入数据对应输出2行:第1行输出中序遍历序列;第2行输出后序遍历序列。原创 2016-10-24 17:13:29 · 400 阅读 · 0 评论 -
数据结构实验之二叉树三:统计叶子数
Problem Description已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并求二叉树的叶子结点个数。Input连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。Output输出二叉树的叶子结点个数。Example Inputabc,,de,g,,f,,,原创 2016-10-24 16:16:17 · 335 阅读 · 0 评论 -
数据结构实验之求二叉树后序遍历和层次遍历(简单版)
#include #include #include typedef struct tnode{ char data; tnode *lc,*rc;}*tree;void build(tree &t,char *he,char *mid,int len) //数组用字符来代替{ if(len==0) t=NULL; //递归停止条件 else原创 2016-08-22 20:53:46 · 345 阅读 · 0 评论 -
浅谈数据结构-平衡二叉树
平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树。1962年,G.M. Adelson-Velsky 和 E.M. Landis发明了这棵树,所以它又叫AVL树。平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1,如果插入或者删除一个节点使得高度之差大于1,就要进行节点之间的旋转,将二叉树重新维持在一个平衡状态。这个方案...转载 2018-12-09 22:36:24 · 273 阅读 · 0 评论