![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
爱吃草莓蛋糕的猴
徘徊在头秃边缘的程序猿
展开
-
总结——堆(排序)
目录1.堆的概念2.堆(1)完全二叉树和堆(2)插入元素(3)删除堆顶元素(4)建堆3.堆排序4.总结1.堆的概念堆是一种特殊的树,满足一下两种条件:(1)堆是一颗完全的二叉树。(2)堆中的某个结点的值都不大于(或不小于)其左右孩子的结点的值。其中,根结点最大的堆叫做大顶堆,根结点最小的叫做小顶堆。2.堆(1)完全二叉树和堆堆是一种完全二叉树,因为完全二叉树的节点比较紧凑,只有最后一层是不满的,所以使用数组是最节省空间的。当用数组来储存完全二叉树的时候,从下标1开始储存。下标0不储存元素的原创 2020-10-20 18:34:36 · 151 阅读 · 1 评论 -
为一则电报设计哈夫曼编码 ----- 数据结构大作业
1.题目哈夫曼树的应用 要传输一则报文内容如下:“AAAAAAAAAAAAAAABBBBBBBBBCCCCCCCCDDDDDDDDDDDDEEEEEEEEEEFFFFF”请为这段报文设计哈夫曼编码,要求如下:请计算出每个字符出现的概率,并以概率为权重来构造哈夫曼树,写出构造过程、画出 最终的哈夫曼树,得到每个字符的哈夫曼编码。请将上述设计哈夫曼编码的过程,用代码来实现,并输出各个字母的哈夫曼编码。(有 代码,有运行结果的截图)请分析算法的效率,至少包括时间复杂度和空间复杂度等。2.分析原创 2020-07-03 11:22:58 · 1893 阅读 · 1 评论 -
数据结构----共享栈和链式结构栈
1.共享栈1.1共享栈的定义共享栈其实就是两个栈,合起来,共享一个数组存数据。这样子的好处就是,两个栈同一个空间。当栈1的数据多,栈2数据比较少,就可以这样子共享,对空间的浪费就会减少。当栈1为空,top1 = -1;栈2为空,top2 = n;关键:有两个栈底,和两个栈顶top1,top2,从数组两端向中间靠拢。当 top1 + 1 = top2 的时候为栈满。1.2共享栈结构/*...原创 2020-03-19 11:57:49 · 272 阅读 · 0 评论 -
数据结构之线性表(顺序表和链表)
线性表首先线性表的定义就是:零个或多个数据元素的有限序列。列如高考前每个班级排队照准考证,这个队伍就可以看做一个线性表,大家都井然有序的排着队,是一个有限的序列,一个班就那么几十个人,而且每个人之间都是有顺序的,站错了顺序就不好核对信息。相对于在广场上一群人在跳广场舞、打拳、散步,这就不是线性表,首先它不是有序的序列,而是散乱的一堆,而且相对来说不是有限的。计算机处理的对象都是有限的,...原创 2020-02-09 16:40:07 · 2133 阅读 · 2 评论 -
数据结构-----栈的顺序储存
01.栈的定义栈是一种后进先出的数据结构,也就是说他不像数组那样子,可以在中间插入,栈只能够在上一个存入数据的后面再存数据,而且只能取现进去的数据。栈简称LIFO结构。栈是限定仅在表位进行插入和删除操作的线性表。允许插入和删除的一端叫栈顶,另一端叫栈底,不含任何元素的叫空栈。栈的插入操作,叫做进栈,也称作压栈,入栈。栈的删除操作,叫做出栈,也叫作弹栈。02.栈的结构栈里面有一个to...原创 2020-03-18 22:36:14 · 363 阅读 · 0 评论