自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zhihuiguoz的博客

更新日常学C内容

  • 博客(38)
  • 收藏
  • 关注

原创 数据结构:快速排序,归并排序,计数排序的实现分析

这篇博客介绍了快排(4种方法),归并排序,计数排序的应用。从算法思想,算法步骤,动图演示,代码的实现与优化,复杂度分析,稳定性分析,非递归的实现等各个方面进行了全面系统的分析,对每个点进行了详细的解释说明,十分的全面易懂,很好上手。

2024-06-20 03:15:00 825

原创 数据结构:冒泡排序,选择排序,插入排序,希尔排序的实现分析

这篇博客主要介绍了一些基本的排序算法,从算法思想,算法步骤,动图演示,代码实现,复杂度分析,稳定性分析这几个方面详细的介绍了冒泡排序,选择排序,插入排序,希尔排序的运用。并对其进行了优化实现,简单易懂,很好上手。

2024-06-16 17:15:00 1113

原创 数据结构:树和二叉树【超详细】

本篇博客我们来介绍树和二叉树。详细介绍了他们的概念,储存,遍历及其其他相关功能的实现。这里主要对二叉树进行了分析,二叉树的知识点很多也比较复杂,这里对其进行深度剖析,让其简单易懂,只需一篇博客就可带你走进树的内部世界。

2024-06-01 18:30:43 951 1

原创 数据结构:堆的保姆级教学指南

本篇博客讲述了堆的相关概念及其功能的实现,画图和语言的超详细结合,帮你轻松地深入了解的堆这一特殊的树结构。我们也会谈到超经典的堆应用:堆排序和TopK问题。保姆级教学帮你轻松拿捏堆哦。

2024-05-31 15:23:31 498

原创 数据结构:链式队和循环队的原理,实现及实际应用

本篇博客主要介绍了队列这一数据结构的特点和用途,详细解释了队列遵循先进先出的原则,以及如何实现链式队和循环队的操作,一步步进行拆解分析,简单易懂。在学习过程中引出问题,再一起出寻找解决方案,让你切身感受到成功解疑的喜悦。通过阅读博客,读者可以深入理解队列的概念和应用,提高编程能力。

2024-05-24 17:38:21 1044

原创 数据结构:顺序栈和链式栈的原理,实现和实际应用

本篇博客介绍了用C语言栈这一经典数据结构的运用,我们来一起了解顺序栈和链式栈的优缺点,及其相关实现操作。帮助读者深入了解栈的概念和实现原理,最后总结栈的特点,优势,及广泛用途的重要性。

2024-05-16 10:00:00 705

原创 【C语言】舌尖上的贪吃蛇游戏大揭秘

请你带着饥饿的小蛇寻找食物。

2024-05-10 10:30:00 775

原创 数据结构:环形链表的实战指南

环形链表,一个看似简单却又充满挑战的概念。它在编程领域有着独特的地位,今天就让我们一起解开它的神秘面纱。

2024-05-07 10:30:00 506

原创 数据结构:来场时间和空间的博弈大战

本文主要讨论了数据结构复杂度,分析不同结构的时间和空间复杂度,论述了影响因素,强调选择合适结构的重要性,通过案例带你切身体会复杂度在算法中的魅力所在,并有超级经典的复杂度实战例题等着你哦。详细易懂,一看就会哦。

2024-05-05 10:15:00 577

原创 逃过死亡游戏的约瑟夫

约瑟夫和他的朋友为什么逃过了自杀游戏?

2024-04-30 10:15:00 97

原创 单链表经典算法:头脑风暴来袭

今天我们要介绍四个经典算法题,这四个算法题可以说是非常具有代表性的,这里给的思路解法也是非常的新颖和灵活,当让有的思路是比较难想的,这也是它的魅力所在,就让你眼前一新,打开新的思路大门,这里解释的也是非常的清楚,十分易懂。保证让你大有所获。

2024-04-29 10:15:00 426

原创 顺序表经典算法:头脑风暴来袭

今日的经典小算法是移除数组和合并两有效数组。带你剖析题目要点,用多个思路带你去分析和实现。思路非常的新颖和灵活,每日精练一题经典小算法,日积月累便可拥有自我分析和解决问题的能力。

2024-04-26 15:24:07 291

原创 数据结构:发掘双链表的灵活优势

欢迎来到C语言数据结构双链表的世界,该篇博客将由浅入深深入带你了解双链表的结构和实战操作方法。你将会切身体会到双链表的灵活优势所在。我们会谈到双链表的增删查改等功能的实现,也会详细的谈到一些小技巧和易错点,即使是数据结构的初学者也能看懂和理解,这篇博客对大家自己去实现双链表功能也会有很大的帮助。

2024-04-23 10:15:00 1537

原创 数据结构:单链表的操作指南

欢迎来到数据结构——单链表的世界。我们将深入了解什么是链表,以及链表的分类和功能等。无论你是初学者还是有经验的编程佬,我们都将提供一个清晰易懂教程和实用技巧,保证带你轻松的理解单链表的原理和实现。

2024-04-17 10:30:00 1667

原创 数据结构:打造高效的通讯录项目

通讯录的实现是基于顺序表,可以把通讯录理解为顺序表的别名。本篇文章详细的介绍了通讯录与顺序表的关系,以及通讯录的实现。不需要掌握什么数据结构的知识,新入坑数据结构的小白都能看懂。

2024-04-14 11:29:40 668

原创 数据结构:去发现顺序表的魅力所在

顺序表是一种经典的数据结构,它也是线性表的一种。本文将带你深入了解顺序表的知识,顺序表是基于结构体,指针,动态内存开辟实现的。让我们在巩固这些知识的同时,来学习新的知识——顺序表吧,一看就懂哦,带你全面而深入的了解数据结构中的顺序表哦。。

2024-04-14 10:00:00 895

原创 掌握预处理原理:轻松拿捏上帝视角

举个例子:这是代码预处理之前的样子int main()return 0;直接将定义的内容进行替换。#define 机制包括了⼀个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)或定义宏 (define macro)。下⾯是宏的申明方式:其中的 parament-list 是一个由逗号隔开的符号表,它们可能出现在stuff中。注意:参数列表的左括号必须与name紧邻,如果两者之间有任何空白存在,参数列表就会被解释为stuff的 一部分。

2024-04-06 15:15:00 1009

原创 掌握C语言文件操作:完整指南来袭

文件主要指计算机系统中的文件,用于存储和组织数据的一种数据存储单元。计算机文件可以包含文本、图像、音频、视频等各种类型的数据。也可以认为磁盘(硬盘)上的文件是文件。程序文件、数据文件(从文件功能的角度来分类的)。上面说的适用于所有输入流⼀般指适用于标准输入流和其他输入流(如文件输入流);所有输出流一般指适用于标准输出流和其他输出流(如文件输出流)。1.fputs函数头文件:#includestr – 具有要写入流的内容的C字符串。

2024-04-06 09:45:00 788

原创 掌握动态内存管理:做内存的主人

动态内存管理超详解,从入门到掌握的超级指南,带你一步步剖析经典笔试题,并且学习柔性数组的用法。最后介绍内存的空间分布。

2024-04-02 09:45:00 869 1

原创 探索C语言中的联合体和枚举:让处理数据更加得心应手

像结构体⼀样,联合体也是由一个或者多个成员构成,这些成员可以是不同的类型。但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同一块内存空间。所以联合体也叫:共用体。给联合体其中⼀个成员赋值,其他成员的值也跟着变化。枚举是一种特殊的数据类型,用于定义一组有限的命名常量,这些命名常量又被称为枚举常量,它提供了一种简洁,可读性更高的方式来表示这些常量,并且通常具有类型安全性和可扩展性。在实际应用中我们经常把能够且便于一一列举的类型用枚举来表示。

2024-03-31 09:45:00 1785 1

原创 结构体,位段(超详解)(下)

位段的声明和结构是类似的,有两个不同:1. 位段的成员必须是 int、unsigned int 或signed int ,在C99中位段成员的类型也可以选择其他类型。2. 位段的成员名后边有⼀个冒号和⼀个数字。//2指只占2个bite位int b : 5;//5指只占5个bite位int c : 10;//10指只占10个bite位int d : 30;//30指只占30个bite位。

2024-03-25 14:45:00 643 1

原创 小新喊你学习结构体了(超详解)(上)

在C语言中有内置类型(C语言本身就支持的类型),比如char ,short ,int ,long ,long long ,float,double ,long double。但仅有内置类型是不够的,假设我想描述学生,描述⼀本书,这时单⼀的内置类型是不行的。描述⼀个学生需要 名字、年龄、学号、身高、体重等;描述⼀本书需要作者、出版社、定价等。C语言为了解决这个问题,增加了结构体这种自定义的数据类型,让程序员可以自己创造适合的类型。

2024-03-23 15:34:07 529 1

原创 修炼内功:研究数据在内存中的储存

其实超过一个字节的数据在内存中储存的时候就有了储存顺序的问题,按照不同的储存顺序,我们分为大端字节序存储和小端字节序存储,具体概念如下:大端字节序存储:把一个数据的低位字节的内容存储到高位字节处,把高位字节的内容存储到低 位节处。小端字节序存储:把一个数据的低位字节的内容存储到低位字节处,把高位字节的内容存储到高位字节处。

2024-03-23 09:30:00 852 1

原创 小新喊你学习内存函数了

小新今天要介绍四个内存函数给大家认识,紧跟小新的步伐哦。

2024-03-19 20:39:48 879

原创 小新喊你了解字符串函数了(二)

接上一篇,我们再学习四个新的字符串函数。

2024-03-17 22:55:58 989 1

原创 小新喊你了解字符串函数了(一)

接着字符函数,小新又开始了新的课程教学,就和小新一起来学习字符串函数吧。

2024-03-17 16:05:34 614 1

原创 小新喊你了解字符函数啦

为了方便处理字符,C语言标准库中提供了一系列库函数,让小新带你来一起学习这些库函数吧。首先小新要告诉你的是:字符函数分为字符分类函数和字符转换函数。

2024-03-16 22:07:01 317 1

原创 指针篇:深入理解sizeof和strlen

strlen其实是一个函数,用来计算字符串长度,在使用该函数的时候要包含头文,计算的过程中遇到'\0'停止,如果没有'\0'就有可能会出现越界访问。在学习操作符的时候,我们学习了 sizeof , sizeof 是用来计算变量所占内存内存空间⼤⼩的,单位是字节,如果操作数是类型的话,计算的是使⽤类型创建的变量所占内存空间的⼤⼩。一定要注意的是sizeof只计算类型所占内存的大小,不关注内存中存放的什么数据。这是我们以为的二维数组在内存中的存放方式,实际情况并非如此。

2024-03-16 17:30:00 333 1

原创 用C实现计算器

计算器顾名思义就是我们日常中所使用的计算器啦,那该怎么用代码的形式实现计算器的功能呢,跟着我一起往下看吧。这里我就以+,-,*,/ 举例,像其他的比如%,,&,^,|等双目操作符代码实现是一样的,这里就跳过了。代码中用到的主要知识是指针的知识,具体到我先介绍这个比较新颖的方法。

2024-02-03 19:30:00 275 1

原创 查找单身狗

我目前只见到了找单身狗问题的两种题型,这里就简单的介绍一下。

2024-02-03 16:48:30 518 1

原创 开启杨辉三角之旅

杨辉三角被我们很多人所熟知,并且用数学方法也很容易解决,那用编程的方式该如何实现呢?让我们一起动动脑筋来思考吧。这个图我画的很丑,但也很形象了,因为我当时不是很懂,在这里就画出来了,希望能帮到像我一样不会的人。第二个细节也是这个代码实现的精髓所在,就是这个表达式。第三个细节就是空格的打印了,空格的打印请看下图。这里面其实有很多的细节,第一个细节在于。,其实我们可以思考一下,这里为什么不是。这里就和大家说再见了~,这时你就会发现出现了。

2024-02-02 19:24:43 239

原创 带你了解杨氏矩阵

对于杨氏矩阵老说,右上角和左下角的元素是有特点的。右上角的元素是一行中最大的,一列中最小的。左下角的元素是一行中最小的,是一列中最大的。所以我们可以从右上角或者左下角开始查找。比如:从右上角开始查找的时候,右上角的元素比我们要查找元素小,我们就可以去掉右上角元素所在的这一行;右上角的元素比我们要查找的元素大,我们就可以去掉右上角元素所在的这一列。有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。矩阵的每行从左到右是递增的,矩阵从上到下是递增的。

2024-02-02 16:39:46 198

原创 带你了解字符串旋转结果

比较规则: 首先比较两个字符串的第一个字符,若不相等,则停止比较并得出两个字符串ASCLL码值大小的比较结果;如果相等接着向后比较,以此类推,直到遇到不同的字符进行上面的操作,又或者两个字符串相等。值得注意的是,strcmp函数最多比较到其中的一个字符串遇到'/0'为止,就能得到结果。写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。里的解法一,里面详细的说明了原理,这里就不介绍了。:如果下面的代码看不懂,请先去观看之前发布的。,做题的时候要用到,会的话就可以直接跳过了。

2024-02-02 10:30:00 351

原创 将整型数组中的奇偶数分开

要求整数数组中的奇数都位于偶数的前面,这里要用到交换思想,位于前面的偶数要与位于后面的奇数交换,而前面的奇数不动,后面的偶数也不动,几次交换下来就会达到我们预期的结果。来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,理解思路之后,我们看整体代码的实现。输入一个整数数组,实现一个函数,所有偶数位于数组的后半部分。

2024-02-01 20:50:35 183 1

原创 字符串左旋的三种解法

题目:实现一个函数,可以左旋字符串中的k个字符例如:ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB。

2024-02-01 18:48:38 629 1

原创 一个项目包含多个.c.h文件

我们现在写的代码量是比较少的,放在一个.c.h文件中运行没有什么问题,但是当一个实际工程的代码量有几万甚至几十万的时候把它们放在一个文件中运行那是很恐怖的,这时我们通常就会引用多个.c.h文件来实现这个实际工程。接下来我们对这个实践进行总结,我们要注意的是函数的声明,类型的声明,常量的定义都放在头文件.h中,函数的实现放在源文件.c中。比如在a.c中引用的函数或者变量要在.h文件中定义,那么它们两者就存在联系,在a.c中就要包含一个include"a.h",在后面我们会举一个例子方便理解。

2023-12-07 18:11:43 506

原创 超详细的分支语句和循环语句

首先回忆一下continue的作用,跳过continue后面的本次循环,跳转到while语句中的判断部分,进行下一次循环的入口判断。在使用switch语句的时候,我们经常可能会遇到一种情况,比如switch后面的表达式中的值无法匹配代码中的case 语句的时候,这时候要不就不处理,要不就要在switch语句中加入default子句。do-while 语句中的continue和break的作用与while语句中的中的continue和break的作用几乎一模一样,我相信大家掌握了上面的知识这个也一定不在话。

2023-12-06 09:36:10 910 1

原创 博客之旅第一篇——自我介绍

我性格开朗,是一个外向但又慢热的人,面对生活、学业我积极向上,不怕挫折。当然我也有自己的职业规划,现阶段我正在忙转专业的考试,这场考试之后我会主体上回归自己的专业课准备期末考试,为成功转专业打下基础。我要转的是计科,由于现在专业的缘故,总体上学习专业课和编程的一周的时间分配是四六分,周末一般都在忙着学习编程。我希望自己以后能够在像华为、抖音、百度等大的平台拿到一个好的offer,我敢这么想,我也会尽力的向目标靠近,虽然我的起点低,只是一个普通本科学生,但是我相信我能在大学四年改变自己,获得提升。

2023-11-20 18:16:44 36

空空如也

空空如也

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

TA关注的人

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