![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
文章平均质量分 65
之于尘
努力ing。
展开
-
二叉排序树树的查找、插入、删除
文章目录一、定义二、二叉排序树的查找1.递归实现2.非递归实现三、二叉排序树的插入四、二叉排序树的删除参考博文:《二叉排序树的查找、插入、删除》一、定义二叉排序树(BST)(二叉查找树)或者是一棵空树,或者是具有下列特性的二叉树:1)若左子树非空,则左子树上所有的结点的值均小于根结点的值。2)若右子树非空,则右子树上所有结点的值均大于根结点的值。3)左右子树均是一棵二叉排序树注意:由二叉排序树的定义可知,左子树结点值<根结点值<右子树结点值,所以如果我们对二叉排序树进行中序遍历(左原创 2021-11-16 12:24:37 · 1105 阅读 · 0 评论 -
数据结构作业-严蔚敏-5.3
文章目录一、题目描述二、解答1)判别两棵树是否相等2)交换二叉树每个结点的左孩子和右孩子3)计算二叉树的最大宽度一、题目描述以二叉链表作为二叉树的存储结构,编写下列算法:1)判别两棵树是否相等2)交换二叉树每个结点的左孩子和右孩子3)计算二叉树的最大宽度(二叉树的宽度是指二叉树所有层中结点个数的最大值)二、解答1)判别两棵树是否相等算法思想:利用递归实现,递归结束的条件有三个:一是两棵树均为空,返回相等;二是只有一棵树为空,返回不等;三是根结点的数据域不等,返回不等。其他情况下则递归判断相原创 2021-11-12 20:11:41 · 3350 阅读 · 0 评论 -
数据结构作业-严蔚敏-5.2.(3)
文章目录一、题目说明二、解答一、题目说明假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07,0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10。1)试为这8个字母设置哈夫曼编码。2)试设计另一种由二进制表示的等长编码方案。3)对于上述实例,比较两种方案的优缺点。二、解答1)可以将频率放大100倍,以方便计算,不影响哈夫曼树的构造。w={7, 19, 2, 6, 32, 3, 21, 10},根据哈夫曼树的构造规则(参考博文:哈夫原创 2021-11-12 10:57:18 · 10226 阅读 · 5 评论 -
哈夫曼树和哈夫曼编码
文章目录一、哈夫曼树的定义二、哈夫曼树的构造三、哈夫曼树的C语言实现四、哈夫曼编码一、哈夫曼树的定义在许多应用中,树中结点常常被赋予一个表示某种意义的数值,称为该结点的权。从树的根到任意结点的路径长度(经过的边数)与该结点上权值的乘积,称为该结点的带权路径长度。树中所有叶子结点的带权路径长度之和称为树的带权路径长度,记作:WPL=∑i=1nwiliWPL=\sum\limits_{i=1}^n{w_i}{l_i}WPL=i=1∑nwili在含有n个叶子结点的二叉树中,其中带权路径长度(WP原创 2021-11-12 09:39:39 · 910 阅读 · 0 评论 -
二叉树、树、森林之间的转换
文章目录1.树转换为二叉树2.森林转换为二叉树3.二叉树转换成树4.二叉树转换成森林1.树转换为二叉树(1)加线。在所有兄弟结点之间加一条线。(2)去线。对树中的每一个结点,只保留它与第一个孩子结点的连线,删除它与其他孩子结点之间的连线。(3)层次调整。以树的根结点为轴心,顺时针旋转一定角度。2.森林转换为二叉树(1)把每一个树转换为二叉树。(2)第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一颗二叉树的根结点的右孩子,用线连接起来。当所有的二叉树连接起来后就得到了原创 2021-11-11 22:41:35 · 3822 阅读 · 3 评论 -
二叉树的遍历算法
文章目录1.前言2.先序遍历3.中序遍历4.后序遍历5.层次遍历1.前言定义:二叉树的遍历指按某条搜索路径访问树种的每个结点,使得每个结点均被访问一次,而且仅仅被访问一次。二叉树的链式存储结构如下:typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;2.先序遍历如果二叉树为空树,则什么也不做;否则1)访问根结点2)先序遍历左子树3)先序遍历右子树原创 2021-11-10 22:18:04 · 103 阅读 · 0 评论