自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 哈夫曼树的应用

定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,则称该二叉树为哈夫曼树,也被称为最优二叉树。2、合并其中根结点权值最小的两棵树,生成这两棵树的父结点,权值为这两个根结点的权值之和,这样树的数量就减少了一个。文本: The last leg of a journey marks the halfway point.1、初始状态下共有n个结点,结点的权值分别是给定的n个数,将他们视作n棵只有根结点的树。3、重复操作2,直到只剩下一棵树为止,这棵树就是哈夫曼树。

2023-06-12 21:40:50 75

原创 二叉树的创建和遍历

4.若规定根节点的层数为1,具有n个结点的满二叉树的深度,h=Log2(n+1). (ps:Log2(n+1)是log以2为底,n+1为对数)。一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。1.若规定根节点的层数为1,则一棵非空二叉树的第i层上最多有2^(i-1) 个结点.2.若规定根节点的层数为1,则深度为h的二叉树的最大结点数是2^h- 1.1.每个结点最多有两棵子树,即二叉树不存在度大于2的结点。

2023-05-03 22:34:48 113

原创 数据结构--链队列

另一方面,我们知道,对于链式结构,我们是必须要知道“头结点”的位置,只有通过头结点才可以找到后续结点,因此链队列分别设置队头指针、队尾指针,令队头指针一直记录头结点位置,队尾指针后移指向插入的元素。链队列具有队头指针和队尾指针,我们通过两个指针来实现队列中元素的进出。涉及到链式结构就必定要使用结点储存元素,那么最开始没有元素入队列的时候,队头、队尾指针均指向头结点,之后若有元素要入队列,我们就动态分配一个新的结点并存入数据,之后连接这个结点到头结点上,队尾指针再后移,就实现了队列队头删除、队尾插入的特点。

2023-04-24 20:19:32 106

原创 栈的应用——括号匹配

括号匹配问题运用到了数据结构中的栈,其基本思路为输入一串字符,系统依次读入,若遇到左括号则入栈;遇到右括号则先判断栈是否为空,若为空则匹配失败,若不为空,则出栈进行匹配:栈顶元素与右括号不匹配,则直接可以得到结果--false;栈顶元素与右括号匹配,则弹出栈顶元素。

2023-04-24 19:25:11 60

原创 汉诺塔问题

先进栈的指令被压在栈最底部执行,后读取的指令依次入栈,当读取到执行指令时再执行栈顶的指令。所以当调用hanoi函数时,递归函数将前面的所有调用全部压栈,当最底层调用结束后,开始读取执行指令,从栈顶指令开始执行,将结果返回下一层函数。S柱上有N(N>=1)个圆盘,盘的尺寸由下到上依次变小。1.以D杆为中介,将S杆上N-1个圆盘都移到中间杆T杆上(本身就为一个n-1的汉诺塔问题了);3.以S杆为中介,将T杆上的N-1个圆盘移动到D杆上(本身就为一个n-1的汉诺塔问题了)。2.将S杆上第N个圆盘移动到D上;

2023-04-23 12:46:51 138

原创 线性表总结&&汉诺塔

1.线性表的定义线性表简称表,由n(n>=0)个数据特性相同的元素构成的有限序列成为线性表。线性表中元素的个数n(n>=0)定义为线性表的长度,n=0时称为空表。2.非空线性表的特点:(1)存在唯一的首元素;(2)存在唯一的尾元素;(3)除第一个外,结构中的每一个数据元素只有一个前驱;(4)除最后一个外,结构中的每一个数据元素只有一个后继。1.线性表的顺序存储表示用一组地址连续的储存单元依次存储线性表的数据元素,这种表示也称作线性表的顺序存储结构或顺序映像。2.优缺点。

2023-04-18 23:11:18 46

原创 多项式的加法

我们用链表存储一个多项式,那么该链表的每一个结点就代表多项式的某一项。所以我们的每一个结点必须包含三个信息:多项式的系数、多项式的指数以及指向下一个结点的指针。从两个待相加的多项式的表头开始,比较两个结点的指数大小,若相同,则将两个结点的系数相加得到新的系数。

2023-04-10 21:36:21 37

原创 数据结构——静态链表

静态链表( static linked list ), 就是用数组来表示链表,用数组元素的下标来模拟链表的指针.由于是利用数组来定义的链表,属于静态储存分配, 因而叫做静态链表. 静态链表的节点也有由两个域组成: 数据域和游标.因此,静态链表中节点的构成用 C 语言实现为:跟普通链表的区别就是 next 是数组下标是int 类型. 用来记录空间存储空间的位置,以便后期分配给新添加元素使用。整体代码运行结果 使用静态链表存储数据,需要预先申请足够

2023-04-10 21:12:19 1099

原创 单链表的操作

单链表通过一组任意的存储单元来存储线性表中的数据元素,不需要使用地址连续的存储单元,因此它不要求在逻辑上相邻的两个元素在物理位置上也相邻。先检查删除位置的合法性,然后从头开始遍历,找到表中的第 i-1 个结点,即被删除结点的前驱结点*p,被删除结点为*q,修改*p的指针域,将其指向*q的下一个结点,最后再释放结点*q的存储空间。声明一个指针pMove,从头结点指向的第一个结点开始,如果pMove不为空,那么就输出当前结点的值,并将pMove指向下一个结点,直到遍历到最后一个结点为止。

2023-03-29 22:29:15 132

原创 静态顺序表

【代码】静态顺序表。

2023-03-27 12:21:26 39

原创 数据结构的研究内容

在现实生活中,我们经常遇到把一些大量的数据组织成一个有序的数据集合的情况,例如:把一堆书放入图书馆中,把许多人放入图书馆中,如果能把这些书籍整理成一个有序的书的集合,那么就可以方便地查找书籍。在实际应用中,常常需要解决不同类型的数据问题,因而需要采用不同的数据结构,从而形成不同的数据模型,并将其应用于各种不同的计算机系统中。在实际应用中,常常需要用到各种各样的数据结构,如树、图、数组等,而在计算机系统中,数据结构通常分为两类:一类是数据元素之间的关系,如顺序、选择、循环等;

2023-03-22 10:40:31 342 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除