数据结构树和二叉树的实际应用
或者换句话说,我要一道题目要用到树和二叉树的,但是又不是抽象的,比如举个例子:下面有两道线性结构的题目:
(1)读入10个整数存入数组a,求数组a中最大的数及位置
(2)小明有10个朋友,小明想知道他们中间谁拥有的玩具数量最多
读入小明10个朋友各有的玩具数目,输出拥有最多玩具数量的人的拥有的玩具数目,及那个小朋友的编号。
我要的是第二题的类型。
学了树和二叉树,最迷糊的是应用在哪里,希望各位大虾帮忙解答下。谢谢!
为我的分数不被百度吞噬-.-,所以我没弄悬赏分,好的有加分! 展开
利用哈夫曼编码进行通信可以大大提高信道的利用率,缩短信息传输的时间,降低传输成本。根据哈夫曼编码的原理,编写一个程序,在用户输入结点权值的基础上求哈夫曼编码。
从键盘输入若干字符及每个字符出现的频率,将字符出现的频率作为结点的权值,建立哈夫曼树,求出各字符的哈夫曼编码。
要求:输出存放哈夫曼树的数组HT的初态和终态;输出每个字符的哈夫曼编码;输入由上述若干字符组成的字符串,对电文进行编码并输出;输入电文的哈夫曼编码,进行译码并输出。
在计算机科学中,树是用来模拟具有树状结构性质的数据集合。它是由n(n>=0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。(n = 0 时称为空树)
特点有:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树。
二叉树的性质:
二叉树的第ii层至多拥有2i−12i−1个节点数, ii>=1);
深度为 kk的二叉树至多总共有 2k−12k−1 个节点数,(kk>=1);
对任何一棵非空的二叉树TT,如果其叶片(终端节点)数为 n0n0,分支度为22的节点数为 n2n2,则 n0=n2+1。
扩展资料:
树状图由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:
每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树;
单个结点是一棵树,树根就是该结点本身。
设T1,T2,..,Tk是树,它们的根结点分别为n1,n2,..,nk。用一个新结点n作为n1,n2,..,nk的父亲,则得到一棵新树,结点n就是新树的根。我们称n1,n2,..,nk为一组兄弟结点,它们都是结点n的子结点。我们还称T1,T2,..,Tk为结点n的子树。
空集合也是树,称为空树。空树中没有结点。
参考资料:百度百科-树 (数据结构名词)