- 博客(40)
- 收藏
- 关注
原创 队列的实现
队列是一种线性的数据结构,它有两个端点,分别为队头(Front)和队尾(Rear)。元素从队尾进入队列(这个操作称为入队,Enqueue),然后从队头离开队列(此操作叫做出队,Dequeue)。例如,在一个银行排队办理业务的场景中,顾客们依次在队伍末尾排队(入队),而柜员按顺序从队伍开头叫号为顾客办理业务(出队),体现的就是队列先进先出的特性。
2024-12-10 08:38:46
284
原创 [C语言]栈的实现
栈是一种遵循后进先出(Last In First Out,LIFO)原则的数据结构,想象它就像一个只能在一端进行操作的容器,这一端被称为栈顶(Top)。就好比往一个竖着的桶里放东西,最后放进去的东西要最先被取出来。
2024-12-06 08:52:11
612
原创 轮转数组(旋转数组)
题目介绍:给定一个整数数组nums,将数组中的元素向右轮转k个位置,其中k是非负数。向右轮转 1 步:向右轮转 2 步:向右轮转 3 步:向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100]
2024-11-11 16:40:09
322
原创 [数据结构]顺序表详解+完整源码(顺序表初始化、销毁、扩容、元素的插入和删除)
顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。特点:顺序表中逻辑上相邻的元素在物理位置上也相邻,这使得只要确定了起始位置,就可以通过公式计算出表中任一元素的地址。
2024-11-11 16:16:08
2299
原创 strtok函数详解
strtok函数是一个字符串分割函数,用于将字符串分割成一系列的标记。这个函数通过一组分隔符字符来确定标记的边界,每次调用都会返回字符串中的下一个标记,并且将原始字符串中的分隔符替换为空字符‘\0’,从而实际上是在原地修改字符串。
2024-11-10 19:12:10
369
原创 strncat函数详解
strncat函数是 C 语言标准库中的一个字符串拼接函数,与strcat类似,但带有长度限制。用于将指定长度的字符串拼接到另一个字符串的末尾,同时确保不会超出目标字符串的缓冲区大小。
2024-11-09 14:52:01
505
原创 strncpy函数详解
strcat函数是 C 语言标准库中的一个字符串操作函数,定义在头文件中。该函数用于将两个字符串拼接起来,即将源字符串追加到目标字符串的末尾。
2024-11-09 14:39:50
380
原创 【c语言】memmove函数的使用和模拟实现
memmove函数是 C 标准库中的一个内存处理函数,定义在头文件中。与memcpy类似,它用于将一块内存区域的内容复制到另一块内存区域。不同的是,memmove可以安全地处理源和目标内存区域重叠的情况,而memcpy在重叠情况下可能会产生未定义行为。
2024-11-08 15:56:23
412
原创 【c语言】memcpy函数的使用和模拟实现
memcpy函数是 C 标准库中的一个内存复制函数,定义在头文件中。它用于将指定大小的内存块从一个地址复制到另一个地址。sourcenum注意:这个函数在遇到 '\0' 的时候并不会停下来。如果source和destination有任何的重叠,复制的结果都是未定义的。
2024-11-08 15:24:41
399
原创 [C语言]多组输入的几种方法
返回EOF,表示没有更多的输入。(EOF是一个预定义的常量,等于-1。通过判断scanf的返回值否为EOF决定是否退出循环。这种方法适用于处理包含字符和数字的多组输入。这种方法适用于处理包含字符和数字的多组输入。函数返回成功读取的项目数。
2024-11-06 22:47:27
800
原创 [c语言]strcat函数的使用和模拟实现
作用:将源字符串的附加到目标字符串中。目标字符串中的终止空字符将被源字符串的第一个字符替换,并且在将两个字符串连接形成的新字符串的末尾将包含一个空字符。目标空间必须有足够的大,能容纳下源字符串的内容。源字符串必须以 '\0' 结束。2.模拟实现strcat。目标空间必须可修改。
2024-11-06 22:46:12
291
原创 算法效率(时间复杂度、空间复杂度,提高算法效率的方法)
是指算法执行的时间,具体来说,是通过依据该算法编制的程序在计算机上运行时所消耗的时间来度量的。算法效率是衡量算法优劣的重要指标之一,主要包括时间效率和空间效率两个方面。
2024-11-05 09:22:24
4078
原创 初识数据结构(什么是数据结构、算法,数据结构的重要性,算法的重要性)
。数据结构是计算机科学中的一个重要概念,它为处理和管理数据提供了基本框架。数据结构研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系。它包含三个方面的内容:数据的逻辑结构、数据的存储结构和数据的操作。常见的数据结构包括。
2024-11-05 08:37:47
686
1
原创 [c语言]strlen函数的使用和模拟实现
作用:求字符串长度。字符串是以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包含 '\0' )。注意:参数指向的字符串必须要以 '\0' 结束。函数的返回值为size_t,是无符号的。
2024-10-31 13:48:49
204
原创 [C语言]动态内存管理(malloc,collco,realloc和free函数)
c语言中的数据结构的大小通常是固定的上述代码中,一旦完成编译,数组的数量就固定了。(在c99中,变长数组的长度在运行时确定,但是在数组的生命周期内仍然是固定长度的)而c语言中支持动态存储分配,即在程序执行期间分配内存单元的能力。利用动态存储分配,可以设计出根据需求扩大和缩小的数据结构。2.动态内存函数在头文件中,有三种内存分配函数:1.malloc函数——分配内存块,但是不对内存块初始化。
2024-10-29 09:54:03
1266
1
原创 [C语言]自定义类型(结构体、枚举、共用体)
结构是多种类型的数据的集合。且每个结构成员都有名字,因此当使用特定的成员时需要指明结构体成员的名字。位段的声明和结构是类似的,有两个不同:1.位段的成员必须是 int、unsigned int 或signed int。2.位段的成员名后边有一个冒号和一个数字。2.位段的成员名后边有一个冒号和一个数字。int _b:5;int _c:10;int _d:15;enum Color//颜色ORANGE,GREEN,RED,BLUE,
2024-10-25 10:57:31
700
2
原创 [C语言]程序环境和预处理
_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义与定义符号的使用:语法:case //在写case语句的时候自动把;break写上。#define REG register //为 register这个关键字,创建一个简短的名字。
2024-10-15 11:26:13
536
4
原创 [C语言]指针入门(什么是指针;指针变量;指针的大小、类型)
指针就是内存地址,指针变量就是用来存放内存地址的变量。在相同环境下,不同类型的指针变量所占用的存储单元是相同的。指针在C语言中是最重要的特性之一,想要了解指针,要先知道什么是地址。
2024-10-05 20:14:21
976
4
原创 [C语言]简单代码搞懂const
使用const修饰的变量不会被改变,被修饰的这个变量叫常变量,本质上还是变量,只是不能被修改,可以用来保护参数。看下面的例子,观察使用const修饰变量的结果结论:当没用const时,n的值既可以直接改变,也可以通过指针变量改变结论:当使用const修饰n时,想要直接改变n的值编译器会报错,但可以通过指针变量*p修改。再看下面的代码结论:当使用const修饰指针变量时,试图改变*p时编译器会报错,而n本身却并不受影响。
2024-10-05 15:56:38
383
2
原创 [C语言]一个最简单的例子让你明白什么是递归
递归是一种解决问题的方法,简单来说就是函数自己调用自己。可以理解为一种抽象的思维方式,我们需要一些宏观思维才能更好的理解递归。
2024-10-02 13:29:11
799
2
原创 [c语言]一句话讲清循环中break和continue的作用与区别
1.两者的作用break和contuinue都只能在循环中使用,都用来停止循环。2.两者的区别break在循环中只要遇到break,就直接永久终止当前循环,开始执行当前循环之外的代码。在循环中只要遇到continue,就结束本次循环,继续进行下一次循环。
2024-09-29 10:44:57
581
3
原创 【C语言】打印符号对应的数据类型和取值范围
%d,%s,%c,%f,%u,%x,%hd,%ld%a,%g,%i等打印符号对应的数据类型、一些常用类型能表示的数值范围、字符转义序列
2023-08-03 18:15:36
393
5
原创 [C语言]变种水仙花数
变种水仙花数即Lily Number:把任意的数字,拆分成两个数字,例如23610可以拆分成(2和 3610)23和610236和10),2361和0),如果所有拆分后的乘积之和等于自身,则是一个例如:23610=2*3610+23*610+236*10+2361*0水仙花数详见另一篇博客,此处传送门水仙花数。
2023-07-19 22:21:39
399
11
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人