自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 循环单链表与循环双链表

本文比较了循环单链表和循环双链表的实现特点。两者均为环形结构,但循环单链表仅通过next指针自指实现单向循环,插入时只需维护next指针;而循环双链表增加了prior前驱指针,支持双向遍历,插入操作需同时维护next和prior指针。虽然双链表实现更复杂,但灵活性更高,适用于需要双向操作的场景。文中给出了两种链表的具体C语言实现代码,包括初始化、插入和打印功能,并通过测试用例验证了其正确性。两种链表均在位置2插入6后得到"1623"的输出结果。

2025-10-30 21:29:22 329

原创 无头节点单链表与双向链表

本文介绍了三种链表操作:尾插法创建单链表(保持数据顺序)、头插法创建不带头节点单链表(实现数据逆序),以及双向链表的基本实现(支持双向遍历)。通过代码示例详细展示了每种方法的实现原理和特点,包括节点插入方式和指针维护操作。尾插法适合顺序处理,头插法适合逆序需求,而双向链表提供更高的操作灵活性。这些基础操作对理解更复杂的数据结构至关重要。

2025-10-30 18:11:06 215

原创 C语言基础语法进阶

本文总结了C语言中的五个基础语法点:1)三目运算符用于简洁的条件判断;2)逗号表达式从左到右执行,取最后一个子表达式的值;3)switch语句实现多分支选择,演示了闰年判断;4)do-while循环至少执行一次的特点;5)二维数组的声明和遍历操作。每个知识点都配有代码示例说明其用法和运行逻辑,涵盖条件判断、循环控制和数据结构等核心内容。

2025-10-16 18:26:24 151

原创 选择、堆排、归并三大经典排序算法解析

本文介绍了三种常见排序算法的实现:选择排序通过遍历寻找最小值并交换;堆排序利用大顶堆结构,不断调整堆顶元素;归并排序采用分治策略,递归排序后合并有序子数组。每种算法都提供了完整的C语言实现代码,包括核心排序函数、辅助函数和测试主程序。代码展示了数组元素交换、打印及特定排序逻辑的实现细节,适用于理解基础排序算法原理和实践应用。

2025-10-14 18:34:47 211

原创 我的创作纪念日

【摘要】作为一名跨考软件工程的备考者,我通过每日代码学习与写作复盘不断提升编程能力。从C语言零基础到能熟练编写排序算法,持续的创作不仅巩固了408专业课知识,更培养了我的逻辑思维。每篇博文记录着成长轨迹,这份成就感激励着我向0854专硕的目标坚定前行,让技术写作成为备考路上不可或缺的成长方式。(97字)

2025-10-12 12:36:30 182

原创 C语言四大排序算法实战

本文总结了C语言中四种排序算法的实现:1)使用qsort()的标准库快速排序;2)冒泡排序(双层循环比较交换);3)快速排序(递归实现,包含划分函数);4)插入排序(直接插入法)。每种算法都提供了完整的代码实现,包括数组初始化、排序函数和打印输出功能。其中冒泡排序使用了异或运算实现交换,快速排序通过枢轴划分实现,插入排序则采用元素后移插入的方式。这些实现展示了不同排序算法的核心思想和编程技巧。

2025-10-12 12:23:46 479

原创 二叉排序树(建树、查找、删除)

本文介绍了二叉排序树(BST)的基本操作实现。主要包括:1)非递归与递归方式的节点插入实现;2)二叉排序树的查找操作;3)三种节点删除情况的处理:直接删除叶子节点、用子树替代单子树节点、用左子树最大节点(或右子树最小节点)替代双子树节点。通过C语言代码示例详细展示了BST的构建、查找和删除操作,为后续学习AVL树、红黑树等平衡树结构奠定了基础。

2025-10-05 19:45:45 132

原创 顺序查找与二分查找

本文分享了三种查找排序算法的学习内容:1.带哨兵的顺序查找(时间复杂度O(n)),适用于无序表,通过设置哨兵简化边界判断;2.qsort快速排序的实现,使用比较函数实现升序排列;3.二分查找(时间复杂度O(logn)),要求有序表,通过折半查找提高效率。文中提供了完整的C语言代码实现,包括表的初始化、随机数填充、排序和查找功能,并演示了三种算法的具体应用场景和实现要点。

2025-10-04 17:09:44 147

原创 408之cpp(二叉树的广度优先遍历)

摘要:本文展示了二叉树广度优先遍历(层序遍历)的C++实现,采用队列辅助完成。代码分为三个文件:function.h定义二叉树和队列结构及函数声明;queue.cpp实现队列的基本操作(初始化、判空、入队、出队);main.cpp构建二叉树并实现层序遍历算法,通过队列依次处理各层节点。程序首先构建二叉树,然后通过队列逐层访问节点,先访问根节点,再依次处理左右子节点,实现广度优先遍历。

2025-10-03 15:50:18 221

原创 408之二叉树(一)

本文介绍了二叉树层次建树和深度优先遍历的实现方法。主要内容包括:1)二叉树结构定义,包含节点数据域和左右子节点指针;2)三种深度优先遍历(前序、中序、后序)的递归实现;3)层次建树算法,使用辅助队列实现节点按层次顺序构建。代码展示了完整的二叉树创建和遍历过程,通过输入字符构建二叉树后,输出三种遍历结果。该实现适用于字符型数据的二叉树处理,体现了二叉树的基本操作原理。

2025-10-02 18:56:15 240

原创 考研408之栈与队列学习

本文分享了栈和队列的多种实现方式,包括:1)顺序栈的实现,包含初始化、判空、入栈和出栈操作;2)循环队列的实现,使用数组存储,通过队头队尾指针实现循环;3)链式队列的实现,使用链表结构;4)链表实现的循环队列;5)栈和队列的综合练习代码。每种实现都给出了完整的C语言代码示例,涵盖了数据结构的核心操作,如初始化、判空、插入和删除等。这些实现展示了栈的LIFO特性和队列的FIFO特性在不同存储结构下的具体实现方式。

2025-09-30 18:50:01 373

原创 408之cpp(链表三)

本文分享了链表操作的几个关键实现代码,包括:1.顺序表的基本插入和删除操作;2.链表的中断取中(查找中间节点并分割链表);3.链表的反转实现;4.双链表的穿插合并方法。每个操作都提供了完整的C语言实现代码,并包含打印输出功能,便于验证操作结果。这些代码涵盖了链表处理中的常见操作,可作为数据结构学习的实践参考。

2025-09-26 21:42:05 221

原创 408cpp学习之链表(二)

本文介绍了单链表的四种基础操作:头插法、尾插法、按位查找和按值查找。头插法通过将新节点插入链表头部实现,尾插法则在链表尾部追加节点。查找操作分为按位置和按值两种方式,分别遍历链表定位特定节点。代码示例展示了每种操作的实现细节,包括节点创建、指针操作和遍历逻辑,使用99999作为输入终止标志。这些操作为链表数据处理提供了基础功能模块。

2025-09-24 22:08:59 219

原创 408之c++学习(顺序表的基本操作)

顺序表的基本操作实现:定义顺序表结构(包含数据数组和长度属性);插入操作通过后移元素在指定位置添加数据并更新长度;删除操作通过前移元素移除指定位置数据并更新长度;OJ系统实战包含插入、删除和查找功能,其中删除操作会返回执行状态,查找功能返回元素位置。所有操作均包含边界检查,操作后会打印或返回当前顺序表状态。

2025-09-22 20:46:30 126

原创 408学习之c语言(结构体)

本文介绍了C语言中结构体的五种常见用法:1)基础结构体定义与初始化,通过实例演示了结构体变量的声明、初始化和成员访问;2)结构体指针操作,比较了(*p).member和p->member两种访问方式;3)结构体数组遍历,展示如何用指针遍历结构体数组;4)动态内存分配,说明malloc在结构体中的应用;5)typedef简化结构体类型,包括为结构体和指针创建别名。每个方法都配有简明代码示例,帮助理解结构体的不同应用场景。

2025-09-15 20:51:25 163

原创 408学习之c语言(递归与函数)

本文介绍了C语言中递归的核心概念与应用实例。重点讲解了递归三要素:基准条件、递归调用和收敛性,并指出常见应用场景如分治算法、数据结构遍历和数学计算。通过四个具体实例展示了递归的实践运用:1)查找数组最大值,2)计算数组元素之和,3)实现冒泡排序,4)求解最大公约数。每个示例均包含完整代码实现,展示了如何设置基准条件、进行递归调用以及保证算法收敛性。文中还特别提醒了递归使用时的注意事项,包括栈溢出风险和性能优化建议。

2025-09-14 15:17:26 196

原创 C语言学习(字符串函数一)

本文总结了C语言字符串处理的核心函数,包括字符分类(isdigit)、大小写转换(toupper)、字符串操作(strlen/strcpy/strcat/strcmp)和高级处理(strstr/strtok)。详细介绍了这些函数的实现原理,如递归实现strlen、指针操作实现strcpy等,并提供了实际应用示例,如字符串分割、错误处理(strerror/peerror)等。特别强调了无符号数比较的注意事项和字符串函数的模拟实现方法,为C语言字符串处理提供了全面的技术参考。

2025-08-25 16:53:52 503

原创 C语言学习(指针六)

本文总结了C语言指针相关的重要知识点,主要包括:1)字符串与字符数组的区别,重点在于'\0'终止符的影响;2)sizeof运算在不同数据结构的应用,包括整型数组、字符数组、字符串常量和二维数组;3)strlen函数的行为特征,特别是遇到未终止字符数组时的随机值问题;4)指针运算规则,包括结构体指针、数组指针和多级指针的运算;5)复杂指针操作实例,如逗号表达式初始化、指针偏移计算和多级指针解引用。这些内容涵盖了指针使用的核心概念和常见陷阱。

2025-08-21 14:02:23 352

原创 C语言学习(指针5)

本文主要介绍了函数指针和qsort排序的应用。内容涵盖:1)函数指针作为参数传递的实现;2)qsort标准库函数的使用方法及比较函数编写;3)结构体指针访问成员的方式;4)qsort对结构体数组按不同字段排序的实现;5)两种通用冒泡排序的实现方案,包括使用异或交换和不使用异或交换的版本。通过具体代码示例,展示了如何利用函数指针实现灵活的排序功能,包括整型数组和结构体数组的排序操作。这些技术可用于开发各种通用的排序功能模块。

2025-08-18 11:53:41 322

原创 C语言学习(指针四)

本文主要介绍了指针在C语言中的核心应用,包括字符串指针、数组指针、函数指针及其综合应用。首先讲解了字符串的两种存储方式(字符数组和字符串常量)及其地址特性,然后详细说明了数组指针的定义和使用方法,包括一维和二维数组的指针操作。接着介绍了函数指针的基础用法和复杂声明,重点阐述了函数指针数组的概念及其在实际应用中的优势。最后通过"计算器实现"案例,展示了如何利用函数指针数组构建转移表来简化多分支选择逻辑,实现可扩展的计算器功能。这些知识点共同构成了C语言指针编程的核心内容。

2025-08-15 19:24:45 281

原创 c语言学习(数组三)

本文总结了指针相关的重要知识点,包括指针运算规则、数组遍历的两种指针方式、冒泡排序实现、二级指针概念、指针数组使用,以及用指针数组模拟二维数组的方法。通过代码示例展示了指针运算中地址偏移的特性(如arr+1与&arr+1的区别),演示了指针遍历数组的两种实现,并详细说明了冒泡排序算法和指针交换技巧。此外,还介绍了二级指针的解引用过程和指针数组的存储原理,最后通过指针数组模拟二维数组的访问方式,完整呈现了指针在数组操作中的灵活应用。

2025-08-13 21:04:39 363

原创 c语言学习(指针二)

本文总结了C语言中const关键字和指针的关键知识点。const修饰变量使其不可修改,但可通过指针间接修改;const修饰指针时,位置不同决定是限制指针指向的内容(*左边)还是指针本身(*右边)。文章还探讨了指针使用中的常见问题:野指针的产生与危害、指针越界访问、返回局部变量指针的风险,以及assert宏的调试用途。最后演示了通过异或运算实现变量交换的技巧。这些内容涵盖了指针和const用法的核心要点及常见错误。

2025-08-06 15:18:39 467

原创 C语言学习(指针 一)

本文介绍了指针的基本概念和使用方法。主要内容包括:1)指针的创建与解引用操作,展示了如何声明指针变量并访问其指向的值;2)指针类型的重要性,说明不同类型指针在解引用时的差异;3)指针运算规则,演示了不同类型指针的偏移量计算;4)使用指针正序和倒序遍历数组的多种实现方法;5)字符串长度计算的两种自定义实现:计数器法和指针相减法。文中通过具体代码示例,详细说明了指针在内存寻址、数组遍历和字符串处理中的应用。

2025-08-04 13:10:51 391

原创 C语言学习(结构体)

本文介绍了C语言结构体的基本用法和运算符优先级问题。主要内容包括:1.结构体定义与初始化,包括顺序初始化和C99标准的指定成员初始化;2.嵌套结构体的定义和使用方法;3.结构体成员的访问和修改方法;4.前置和后置递减运算符的优先级差异及其运算结果;5.多个前置递增运算符在表达式中的未定义行为问题。文章通过具体代码示例展示了结构体的各种初始化方式以及运算符优先级对运算结果的影响。

2025-08-03 20:21:09 331

原创 C语言学习(进制转换与操作符)

摘要:本文系统介绍了进制转换与位运算知识,包括:1)二进制、八进制、十六进制与十进制的相互转换方法;2)C语言中不同进制的占位符(%d、%o、%x)使用;3)位运算技巧(移位、异或交换变量、统计1的个数、位设置等);4)逗号表达式和函数操作符的应用。重点讲解了二进制补码操作、无临时变量交换整数等实用编程技巧,并提供了完整的C语言代码示例。

2025-08-02 19:01:09 238

原创 C语言学习(递归)

本文介绍了递归算法的核心思想与几个经典实现:1.递归必须有终止条件,否则会导致栈溢出;2.给出阶乘递归实现Fac(n)=Fac(n-1)*n;3.演示数字倒序和正序打印的递归/非递归方法;4.对比斐波那契数列的递归实现(简洁但低效)和非递归实现;5.重点讲解汉诺塔问题的递归解法:将n-1个盘子借助辅助柱移动,再移动最底层盘子,时间复杂度为O(2^n)。文中通过代码示例展示了递归(分而治之)的思想,强调递归终止条件的重要性。

2025-08-01 20:34:42 405

原创 C语言—扫雷游戏

这段代码实现了一个经典的扫雷游戏,包含游戏初始化、地雷随机布置、玩家交互和胜负判断等完整功能。代码结构清晰,分为头文件、游戏逻辑实现和测试入口三部分,便于理解和维护。

2025-07-30 19:06:27 326

原创 c语言编程练习(一)

文章包含计算数字9的个数,闰年查找,计算最大公约数等内容

2025-06-28 10:06:45 382

原创 c语言函数学习

本文主要介绍了C语言函数的相关知识,包括函数定义与调用、参数传递方式(值传递与数组地址传递)、返回值处理、函数链式访问、变量作用域(局部变量与静态变量)、函数模块化设计(头文件与源文件分离)、外部变量声明(extern使用)以及实际应用示例(判断闰年和获取月份天数)。重点讲解了函数的各项特性及使用技巧,如提前返回、类型自动转换等,并展示了如何通过函数实现程序模块化设计。这些内容涵盖了C语言函数编程的核心概念和应用方法。

2025-06-22 17:12:41 278

原创 C语言数组学习

本文介绍了数组编程基础,包括一维数组、二维数组和变长数组的使用方法。主要内容涵盖:数组初始化(完全/不完全)、下标访问、循环输入输出、内存连续存储特性、元素个数计算等基本操作。特别讲解了二维数组的行列定义规则和双重循环操作,以及C99变长数组的特性。最后演示了两种数组查找算法:全找法和更高效的二分查找(要求数组有序)。文中通过具体代码示例展示了各个知识点的实际应用。

2025-06-10 19:43:44 745

原创 C语言•猜数字游戏

摘要:作者分享了一个基于分支与循环的猜数字游戏代码。游戏实现包括三部分:1)菜单函数显示选项;2)游戏主逻辑用rand和srand函数生成随机数,玩家有5次猜测机会;3)主函数使用时间作为随机种子,通过do-while循环和switch语句控制游戏流程。代码实现了清屏、输入验证和游戏结果反馈等功能。(150字)

2025-06-09 17:14:35 370

原创 C语言分支与循环学习(三)

本文分享了几个C语言编程示例:1)使用双重循环判断100-200之间的素数,通过flag标记优化,后续改进为仅检查奇数并缩减循环范围至平方根;2)演示goto语句的跳转功能;3)实现一个倒计时关机程序,可通过特定输入取消关机。这些示例展示了循环嵌套、条件判断、goto跳转和系统命令调用的实际应用。

2025-06-08 21:40:55 255

原创 C语言分支与循环学习(二)

本文总结了C语言中三种循环结构(for、while、do-while)的使用方法及其差异,重点演示了break和continue语句的不同作用。通过7个典型代码示例,详细解析了:1)for循环的三要素(初始化、条件、迭代);2)while循环的终止条件控制;3)do-while至少执行一次的特性;4)如何优化循环效率(如直接遍历3的倍数);5)break立即终止循环与continue跳过当前迭代的区别;6)前置/后置递增运算符的位置陷阱。特别指出在while循环中使用continue可能导致无限循环的问题,

2025-06-06 16:27:19 568

原创 C语言分支与循环学习(一)

=是比较运算符,而=是赋值运算符,别把这两个搞混,建议在比较时将常量放在前面,如if(2 == a),这样如果误写为if(2 = a),编译器会报错。// ==是比较运算符,返回0或1,赋值给c。if (a<b && b<c) // 正确表示a<b<c的方式。直接写a<b<c是错误的,因为会先计算a<b得到0或1,再与c比较。printf("余数是0");printf("余数是1");printf("余数是2");printf("工作日");

2025-06-04 21:41:06 607

原创 5/31学习内容

printf("且num是奇数");printf("%d是奇数", num);printf("%d是偶数", num);printf("num是正数");printf("num是偶数");printf("num是正数\n");printf("中老年");printf("num是负数");printf("num非正数");printf("青年");printf("老年");printf("num是零");printf("可以上网");printf("请输入一个整数");printf("请输入一个年龄");

2025-05-31 20:53:50 420

原创 初入csdn

各位大佬好,我是一个环境工程在读的男生,传说中的那个天坑专业,一眼望到头。我本人很热爱折腾,现在想要考研转码。我目前在学c语言,我准备每天学2~3小时编程,把其他时间留给数学和英语,苍天一定不负有心人的!

2025-05-30 20:56:52 90

空空如也

空空如也

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

TA关注的人

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