自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 七大排序算法(插入排序、希尔排序、选择排序、堆排序、交换排序、快速排序、归并排序)

几个回合后,begin和end最终会相遇,当左边先走,那就是begin遇到end,key赋值给end的位置,这样可以保证key比左边的数都要大,比右边的数都要小,可以达成排序的目的;假如是右边先走,最后begin和end仍然相遇,但是会是end遇begin,begin此时的值比key要小,当与end相遇发生交换时,会把这个小的数交换到右边去,导致右边出现比key小的数,不能完成排序,因此必须让begin遇end才行。因为左边选取的是比key小的数,所以遇到比key大的数时需要停下;步骤如下(以升序为例)

2024-09-24 22:33:22 713

原创 平衡二叉树(C语言)

这个方法容易想到,但是时间复杂度太高,为O(N*N),出现了重复计算,因此我们可以选择优化这个代码,将时间复杂度变为O(N)。平衡二叉树是指左右子树高度相差小于等于1的二叉树。

2024-09-05 20:32:53 212

原创 另一棵树的子树(C语言)

【代码】另一棵树的子树(C语言)

2024-09-04 00:00:00 218

原创 单值二叉树(C语言)

【代码】单值二叉树(C语言)

2024-09-03 09:00:00 138

原创 二叉树的最大深度(C语言)

【代码】单值二叉树(C语言)

2024-09-02 19:32:05 205 1

原创 二叉树的前序遍历(C语言)

【代码】二叉树的前序遍历(C语言)

2024-09-02 12:00:00 204

原创 数据结构——循环队列的设计

定义:循环队列属于队列的一种,具有队列的功能,可以在头尾进行插入和删除,因为可以改变头尾指针的位置,所以具有在任意节点操作的功能。1.循环队列允许元素在队尾插入,在队头删除,同时遵循先进先出的原则。2.笔者推荐使用数组实现循环队列,数组相比链表节约了找尾这一步骤,更加方便的快速访问,同时循环队列用数组实现可以不用移动数组内的元素。3.在大量添加和删除元素时,循环队列相比链表更有效率,因为它不需要频繁移动指针寻找元素。4.缺陷:不支持随机访问,不能像数组一样直接访问特定位置的元素。比如不能实现二分查找。

2024-06-29 16:26:14 1045

原创 用栈实现队列(C语言实现)

【代码】用栈实现队列(C语言实现)

2024-06-27 13:31:29 208

原创 用队列实现栈(C语言实现)

【代码】用队列实现栈(C语言实现)

2024-06-26 17:48:52 367

原创 有效的括号(C语言实现)

【代码】有效的括号(C语言实现)

2024-06-24 22:28:21 158

原创 删除排序链表中的重复元素 II(C语言实现)

第三步,第一种情况下主逻辑为一个变量遍历到下一个不同的节点,另一个变量依次删除节点,第三个变量则链接链表。删除链表的重复元素可以使用对比的方法,前后两个元素进行对比,两个元素相同就进行删除,不同就继续遍历。第二步,第一种情况下为要删除的情况,需要删除,之后再链接;第二种为不同的情况,需要继续遍历寻找。第一步,分为两种情况,第一种为两个节点相同的情况,第二种时两个节点不同的情况。第四步,存在特殊情况,分为头删和尾删、全部删除,这三个需要注意野指针的问题。第五步,删除完成后返回链表头指针。

2024-06-16 22:34:58 235

原创 对链表进行插入排序(C语言实现)

【代码】对链表进行插入排序(C语言实现)

2024-06-14 13:50:58 209

原创 随机链表的复制(C语言实现)

【代码】随机链表的复制。

2024-06-12 19:44:07 380

原创 判断回文链表(C语言实现)

【代码】判断回文链表(C语言实现)

2024-06-08 07:00:00 486

原创 相交链表(C语言实现)

【代码】相交链表(C语言实现)

2024-06-07 22:50:17 121

原创 分割链表(C语言实现)

【代码】分割链表(C语言实现)

2024-06-07 16:25:31 166

原创 合并两个有序链表(C语言实现)

将两个升序链表合并为一个新的链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

2024-06-02 14:33:39 425

原创 链表中的倒数第k个节点(C语言实现)

创造两个指针,把头节点赋值给两个指针。设置两个循环,第一个循环里是快指针先走(注意k可能会大于链表节点个数,因此需要写当快指针为空的情况),第二个循环是两个指针同时走,当快指针为空时循环结束。此题可以利用快慢指针,设置一个快指针和一个慢指针,让快指针先走k次,与满指针拉开k-1节点的距离,再让快指针和慢指针同时走,当快指针为空时,慢指针也会同时到达倒数第k个节点。

2024-05-31 07:00:00 360

原创 移除链表元素(C语言实现)

【代码】移除链表元素(C语言实现)

2024-05-30 07:00:00 309

原创 反转链表(C语言实现)

否则反转后会丢失下一个链表的地址。之后将变量向下一批迭代,

2024-05-29 12:09:48 273

原创 数组形式的整数加法(C语言实现)

是按照从左到右的顺序表示其数字的数组。

2024-05-25 21:26:10 356

空空如也

空空如也

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

TA关注的人

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