- 博客(4)
- 收藏
- 关注
原创 PTA 05-哈夫曼编码 哈夫曼编码
给定一段文字,如果我们统计出字母出现的频率,是可以根据哈夫曼算法给出一套编码,使得用此编码压缩原文可以得到最短的编码总长。然而哈夫曼编码并不是唯一的。例如对字符串"aaaxuaxz",容易得到字母 'a'、'x'、'u'、'z' 的出现频率对应为 4、2、1、1。
2024-06-06 23:14:04
749
2
原创 PTA 03-树2 List Leaves
2、如何遍历树,并按要求输出叶子节点:由于题目要求是从上到下,从左到右,这意味着在遍历当前层的节点之前,需要先遍历完上一层的节点,这显然是层序遍历。层序遍历基于队列的数据结构实现,这里我使用的是数组模拟队列。大致意思就是:输入节点个数,然后按顺序(0到N-1)输入每个节点的左右子树的索引,要求输出叶子节点,顺序为从上到下,从左到右。1、创建树:由于是二叉树,我们可以选择用结构体数组去存树的节点以及左右孩子的索引。注意:这里对输出有要求,所以先将符合要求的节点放入vector中,最后一起输出。
2024-06-05 23:00:03
502
原创 有10个地区的面积,要求对他们按由小到大的顺序排序
解题思路:每次将相邻的数比较,将小的调到前面。若有6个数字:9,8,5,4,2,0第一次将9和8对调。再依次与剩下的数比较,经过五次比较最大的数9已经沉底,成为最右边的数,而其他大于9的数都向前一个位置。经过一轮比较就可得出最大的数。同理进行第二轮比较即可得出第二大的数8的位置,由于第一轮已经比较过8和9了则第二轮只需要比较4此。按此规律下去,6个数要比较5轮,第一轮比较5此,第二轮4次......第五轮一次。如果有n个数,则需比较n-1轮,第一轮比较n-1次,在第j轮比较n-j次。
2023-11-10 10:51:20
396
5
原创 输入一行字符,统计有多少单词,单词之间用空格分开
使用for循环,初始变量为1,遇到空格变量加一,再输出变量。输入一行字符,统计有多少单词,单词之间用空格分开。
2023-11-06 12:11:50
50
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人