自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第三章 3.2队列

出队是使用的头结点S对第一个节点p((*S).front->next)进行free删除。队满:((*Q).rear+1)%MaxSize==(*Q).front。后移:(*Q).rear=((*Q).rear+1)%MaxSize。(*Q).rear和Q->rear等价,往后不做说明。队列的入队是在队尾建立新的节点s进行尾插,队空:Q.rear==Q.front。

2025-04-08 15:22:25 89

原创 第三章 3.1栈

2.如果栈底在下,栈顶在上,入栈出栈,*next都是向下指向的(指向栈底)。Push(SqStack *S,ElemType e)中,实际上是等价的,后者更加简洁。我这里模仿书中选取了前者。1.实际上链栈不需要头节点。

2025-04-07 20:37:34 143

原创 第二章 2.3链表

(主要差异在插入和删除)

2025-04-07 18:33:14 468

原创 第二章 2.2顺序表

【代码】第二章 2.2顺序表。

2025-04-06 19:00:16 81

原创 六种常见排序

而双轴快速排序(Dual-Pivot QuickSort)则是在标准快速排序的基础上进行优化,它通过使用两个基准元素来实现更高效的排序。是一种基础的排序算法,其核心思想是通过重复交换相邻元素的位置,使得最大的元素逐渐“冒泡”到数组的末端。尽管它的时间复杂度较高,通常为 O(n^2),但由于其简单直观,仍然是学习排序算法时常用的一个例子。它的基本思想是通过逐步插入元素到已排序的子序列中,从而实现排序。插入排序的时间复杂度为 O(n²),在元素个数较少时,插入排序通常表现得较好,且实现非常简单。

2024-11-11 00:09:51 148

原创 Floyd 算法计算最短路径

【代码】Floyd 算法计算最短路径。

2024-11-10 23:58:05 164

原创 深度讲解邻接表图结构与广度优先搜索(BFS)

使用队列来存储待处理的顶点,从起始顶点开始进行广度优先搜索。每次访问队列中的顶点,打印出该顶点的值,并将未访问过的邻接顶点加入队列。,标记每个顶点是否被访问过。广度优先搜索(BFS)

2024-11-10 23:56:08 311

原创 深入理解邻接表和深度优先搜索(DFS)算法

函数通过递归访问每个顶点,并打印访问的顶点。如果当前顶点没有连接到目标顶点,则继续递归地访问它的邻接节点。函数的参数包括图、起始顶点、目标顶点和访问数组。来标记已经访问过的顶点,避免重复访问。如果当前顶点是目标顶点,函数返回成功。DFS 是一种用于遍历图的算法。深度优先搜索(DFS)

2024-11-10 23:52:38 237

原创 实现邻接表的图结构

在计算机科学中,图是一种重要的抽象数据结构,广泛应用于各种领域,如社交网络分析、路由算法等。有两种常见的图的表示方式:邻接矩阵和邻接表。本文主要讲解如何通过邻接表来表示一个图。(Vertex)和连接顶点的。

2024-11-10 23:49:57 223

原创 邻接矩阵表示图结构

【代码】邻接矩阵表示图结构。

2024-11-10 23:47:48 98

原创 基于链表的哈希表实现

使用链表解决哈希冲突问题,即多个元素通过链表存储在同一个哈希桶中。

2024-11-10 23:46:23 139

原创 哈希表:链地址法与开放定址法

哈希表(Hash Table)是一种用于存储键值对的数据结构,能够在常数时间内进行插入、删除和查找操作。哈希表的基本思想是通过一个哈希函数将键映射到表中的一个位置,避免了线性查找的高时间复杂度。

2024-11-10 23:44:23 122

原创 实现最大堆

最大堆通常用于实现优先队列,因为它能在 O(log n) 时间复杂度内支持插入和删除最大元素的操作。

2024-11-09 23:46:48 224

原创 Huffman 编码实现

Huffman 编码是一种广泛应用于数据压缩的算法,通过构建一棵最优二叉树(Huffman 树),以最短的二进制代码表示出现频率较高的字符,从而实现数据的有效压缩。

2024-11-09 23:44:53 174

原创 平衡二叉树(AVL)树的实现

AVL 树的插入操作、树的平衡及相关的旋转操作。

2024-11-09 23:42:47 167

原创 二叉搜索树(BST)实现与操作

二叉搜索树(Binary Search Tree, 简称BST)。二叉搜索树是一种树形数据结构,它的每个节点最多有两个子节点,且左子树上的所有节点的值小于父节点的值,右子树上的所有节点的值大于父节点的值。这使得二叉搜索树具有很好的搜索、插入和删除操作效率。

2024-11-09 23:40:19 165

原创 队列实现层序遍历

层次遍历也叫做广度优先遍历(BFS),它按照从上到下、从左到右的顺序遍历二叉树中的所有节点。为了实现这一功能,我们将利用**队列(Queue)**这一数据结构。队列的特点是先进先出(FIFO),非常适合用于层次遍历,因为我们需要按层逐层处理节点。

2024-11-09 23:36:59 221

原创 栈迭代实现二叉树的先序和中序遍历

【代码】栈迭代实现二叉树的先序和中序遍历。

2024-11-09 23:35:08 115

原创 树的三种遍历

【代码】树的三种遍历。

2024-11-09 23:26:06 97

原创 基于链表结构的队列

链表队列使用链表节点动态分配内存,可以存储任意数量的元素,直到系统内存耗尽。该代码定义了链表节点和队列的结构,以及基本的队列操作。

2024-11-09 23:20:43 193

原创 基于数组的循环队列

【代码】基于数组的循环队列。

2024-11-09 23:18:33 130

原创 链表实现栈

【代码】数据结构复盘--链表实现栈。

2024-11-05 23:32:57 336 1

原创 顺序表实现栈

栈顶元素的下标。栈顶元素的下标值始终指向栈中最新的元素,初始化为 -1,表示栈为空。: 当前栈的容量,表示栈可以容纳的最大元素个数。初始化为 10,并会根据需要扩展。: 在栈满时,创建一个新的更大的数组,并将原数组的元素复制到新数组中。: 指向栈存储数据的动态数组。栈中的每个元素都会存储在这个数组中。: 栈扩容后的新容量,通常是当前容量的两倍。: 栈中元素的类型,在本例中是。,可以根据需要修改为其他类型。

2024-11-05 23:31:04 272

原创 双指针链表C语言

【代码】数据结构复盘--双链表。

2024-11-05 23:28:43 203

原创 单链表C语言

【代码】数据结构--单链表。

2024-11-05 23:26:17 149

原创 顺序表C语言

由于 ArrayList 是指向 struct List 的指针,因此 list 是一个指针,指向 struct List 类型的数据。realloc扩容返回一个指向新的内存块的指针(void* realloc(void* ptr, size_t new_size);) ptr指向已分配内存块的指针,size_t new_size新的内存大小。malloc扩容返回指向分配内存块的指针(void* malloc(size_t size);)void*返回指针,size_t size:要分配的内存大小。

2024-11-05 23:15:36 278

原创 L1-7 分寝室(C语言)

学校新建了宿舍楼,共有 n 间寝室。等待分配的学生中,有女生 n0​ 位、男生 n1​ 位。所有待分配的学生都必须分到一间寝室。所有的寝室都要分出去,最后不能有寝室留空。现请你写程序完成寝室的自动分配。

2023-12-26 10:30:55 715

原创 L2-4 寻宝图(C语言)

给定一幅地图,其中有水域,有陆地。被水域完全环绕的陆地是岛屿。有些岛屿上埋藏有宝藏,这些有宝藏的点也被标记出来了。本题就请你统计一下,给定的地图上一共有多少岛屿,其中有多少是有宝藏的岛屿。

2023-12-26 09:57:59 545

原创 L2-2 天梯赛的赛场安排(C++注释版)

天梯赛使用 OMS 监考系统,需要将参赛队员安排到系统中的虚拟赛场里,并为每个赛场分配一位监考老师。每位监考老师需要联系自己赛场内队员对应的教练们,以便发放比赛账号。为此我们设计了多轮次排座算法,按照尚未安排赛场的队员人数从大到小的顺序,每一轮对当前未安排的人数最多的学校进行处理。由于近年来天梯赛的参赛人数快速增长,2023年超过了 480 所学校 1.6 万人,所以我们必须写个程序来处理赛场安排问题。

2023-12-26 09:53:58 1786 1

原创 7-6 智能护理中心统计(C太难,C++详细注释)

智能护理中心系统将辖下的护理点分属若干个大区,例如华东区、华北区等;每个大区又分若干个省来进行管理;省又分市,等等。我们将所有这些有管理或护理功能的单位称为“现在已知每位老人由唯一的一个管理结点负责,每个管理结点属于唯一的上级管理结点管辖。你需要实现一个功能,来统计任何一个管理结点所负责照看的老人的数量。注意这是一个动态问题,即随时可能有老人加入某个管理结点,并且老人是有可能从一个管理结点换到另一个管理结点去的。

2023-12-26 09:28:43 691

原创 L1-8 谁管谁叫爹(C语言&注释)

咱俩谁管谁叫爹》是网上一首搞笑饶舌歌曲,来源于东北酒桌上的助兴游戏。现在我们把这个游戏的难度拔高一点,多耗一些智商。不妨设游戏中的两个人为 A 和 B。游戏开始后,两人同时报出两个整数 NA​ 和 NB​。

2023-12-26 08:53:46 1125

原创 L1-6 剪切粘贴(C语言转载)

使用计算机进行文本编辑时常见的功能是剪切功能(快捷键:Ctrl + X)。请实现一个简单的具有剪切和粘贴功能的文本编辑工具。abcdefgcdeabfgbfgabfcdeg每次操作后的字符串即为新的当前字符串。在若干次操作后,请给出最后的编辑结果。

2023-12-26 08:47:33 456

原创 L2-3 锦标赛(C++转载)

有 2k 名选手将要参加一场锦标赛。锦标赛共有 k 轮,其中第 i 轮的比赛共有 2k−i 场,每场比赛恰有两名选手参加并从中产生一名胜者。第 k 轮唯一一场比赛的胜者就是整个锦标赛的最终胜者。已知每一名选手都有一个能力值,其中第 i 名选手的能力值为 ai​。在一场比赛中,若两名选手的能力值不同,则能力值较大的选手一定会打败能力值较小的选手;若两名选手的能力值相同,则两名选手都有可能成为胜者。令 li,j​ 表示第 i 轮第 j 场比赛的能力值,令 w 表示整个锦标赛最终胜者的能力值。

2023-12-25 16:38:37 847

原创 L2-1 堆宝塔(C_9分,C++转载)

堆宝塔游戏是让小朋友根据抓到的彩虹圈的直径大小,按照从大到小的顺序堆起宝塔。但彩虹圈不一定是按照直径的大小顺序抓到的。重复此步骤,直到所有的彩虹圈都被抓完。最后 A 柱上剩下的宝塔作为一件成品,B 柱上剩下的彩虹圈被逐一取下,堆成另一座宝塔。问:宝宝一共堆出了几个宝塔?最高的宝塔有多少层?

2023-12-25 11:26:28 744

原创 L1-7 分寝室(C)

学校新建了宿舍楼,共有 n 间寝室。等待分配的学生中,有女生 n0​ 位、男生 n1​ 位。所有待分配的学生都必须分到一间寝室。所有的寝室都要分出去,最后不能有寝室留空。现请你写程序完成寝室的自动分配。

2023-12-25 11:08:27 873

原创 L1-5 猜帽子游戏(C语言)

宝宝们在一起玩一个猜帽子游戏。每人头上被扣了一顶帽子,有的是黑色的,有的是黄色的。每个人可以看到别人头上的帽子,但是看不到自己的。游戏开始后,每个人可以猜自己头上的帽子是什么颜色,或者可以弃权不猜。如果没有一个人猜错、并且至少有一个人猜对了,那么所有的宝宝共同获得一个大奖。如果所有人都不猜,或者只要有一个人猜错了,所有宝宝就都没有奖。下面顺序给出一排帽子的颜色,假设每一群宝宝来玩的时候,都是按照这个顺序发帽子的。然后给出每一群宝宝们猜的结果,请你判断他们能不能得大奖。

2023-12-25 11:07:32 1583

原创 L1-4 进化论(C语言)

在“一年一度喜剧大赛”上有一部作品《进化论》,讲的是动物园两只猩猩进化的故事。猩猩吕严说自己已经进化了 9 年了,因为“三年又三年”。猩猩土豆指出“三年又三年是六年呐”……本题给定两个数字,以及用这两个数字计算的结果,要求你根据结果判断,这是吕严算出来的,还是土豆算出来的。

2023-12-25 11:06:06 1348

空空如也

空空如也

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

TA关注的人

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