自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【LeetCode例232】【C语言】用栈实现队列~动画超详细解读!

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作**(push、pop、peek、empty)**:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true;否则,返回 false。

2024-05-16 04:05:20 586 16

原创 【数据结构】【C语言】队列 动画详解

队列是一个带有限制的线性表,他限制在你只能从尾部进入数据,再从头部出数据,就像排队一样,先进去的肯定先出来,后进去的肯定后出来(我么们来看看动画)队列我们一般用链表实现,当然用顺序表其实也是可以的,只是说用起来没有链表方便//链表节点定义}QNode;int size;}QU;

2024-05-16 01:38:53 197 5

原创 【数据结构】【C语言】栈 动画详解

所以,我们说栈就是一片特殊的顺序表,用于暂时存储某些数据,先放进栈的最后出栈(使用),后放进栈的最先出栈(使用),就有点像羽毛球筒一样,先放进去的羽毛球最后使用,后放进去的羽毛球最先使用,因为栈的限制性,他只允许栈顶的元素改变(我们可以看看动画)这里pdata应该是一个数组的指针,这个数组的空间我们在栈初始化的时候再申请pdata — 数组top — 栈顶下标capa — 当前栈能承载的元素数int top;int capa;}ST;

2024-05-15 23:23:44 237 1

原创 【LeetCode LCR 022】【C语言】环形链表 II

给定一个链表,返回链表开始入环的第一个节点。从链表的头节点开始沿着next指针进入环的第一个节点为环的入口节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。如果pos是-1,则在该链表中没有环。注意,pos仅仅是用于标识环的情况,并不会作为参数传递到函数中。不允许修改给定的链表。示例1:输入以下链表,值为3的节点为head节点返回值应该为值为2的节点示例2:输入以下链表,值为1的节点为head节点。

2024-05-12 19:04:12 811 13

原创 【LeetCode例141】【c语言】环形链表

给你一个链表的头节点head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。pos不作为参数进行传递。仅仅是为了标识链表的实际情况。如果链表中存在环,则返回true。否则,返回false。

2024-05-06 23:03:15 897 14

原创 【数据结构基础】时间复杂度

简单来讲,时间复杂度就是一个函数(数学意义上的函数),这个函数用于表示一个程序或者一串代码运行完所需要的时间量级我们来看一段代码i < n;这里count在循环里不断 ++ 了 n 次,记作T(N)注意:这里其实我们不关注循环里面的内容,因为循环里面的内容不管是什么对于CPU来说都是一瞬间就可以完成的事,所以我们只关注循环次数而非循环里的内容再比如这个函数i < n;i++)j < n;

2024-04-27 00:29:07 781 8

原创 【C语言数据结构】分割链表

这里挂上题目链接给你一个链表的头节点head和一个特定值x,请你对链表进行分隔,使得所有x的节点都出现在x的节点之前。你不需要每个分区中各节点的初始相对位置。比方说下面的例子,x为3。

2024-04-19 13:36:46 803 1

原创 【C语言基础】随机读写函数的介绍与用法

不同于顺序读写,我们知道顺序读写是从头读到尾,但实际上我们生活中常用的大多是随机读写假设我们在一个文本中有字符串”abcdef”,顺序读写只能从a开始读,但有时候我们并不需要a啊,假设我们需要e呢,于是就有了随机读写这种东西了,用奇淫技巧来实现指哪读哪的效果。

2024-04-02 23:06:51 636 1

原创 【C语言基础】fgets函数详解

首先第一个参数,这里应该传一个空字符串进去,他会把读到的字符串拷贝到这个空字符串里面,第二个参数是你想一共要读到的字符个数(注意,这里包括’\0’的空间,这么说把,假设我们一共就在这里写了10,那他实际只会读9个字符,最后一个字符默认补上’\0’,传到str的最后一个空位),第三个参数是目标文件指针。当然,细心的你肯定会发现,因为fgets传给str的字符串末尾一定带一个’\0’,所以我是不是可以每次只传两个字符给str,也能实现相同的效果呢。值得确定的确定的是,这个函数只会读一行的内容,并不会跨行读取。

2024-03-31 18:51:53 425 1

原创 【c语言基础知识】动态内存函数的介绍

简单来说,malloc函数就是用来开辟内存空间的我们去cplusplus上看下函数定义不难看出,这里参数只有一个,就是你想开辟的字节数,然后返回值为void* 的指针,想用别的指针得自己强转如果开辟失败就会返回空指针我们举个简单的例子这里我给int型指针pa开辟了40个字节的空间,如果返回为空指针就打印错误,并且返回1,然后在开辟的空间里放值,再打印注意malloc的返回值一定要判断,不然指不定在哪个地方就会出事儿,然后你还发现不了再举个例子,我们切换到x86环境下,再改一下开辟的空间量。

2024-03-26 00:29:22 425

原创 【C语言】经典例题:实现一个函数,可以左旋字符串中的i个字符

实现一个函数,可以左旋字符串中的i个字符

2024-03-06 23:24:14 633 2

原创 关于“arr+1”是地址+1还是下一个元素的解释

因为我们在定义数组的时候,给每个元素分配了空间和下标,你可以理解为这个空间被整合了,成了一个单独的个体,所以我们指向下一个元素的时候,只需要将arr+1即可。这里在写的时候就遇到了问题,如果是int型数组,可不可以用arr+4?为什么arr+1是下一个元素而不是当前地址的下一位?最近在写一道题:要求运用函数求一个字符串的长度,且不使用中间变量。希望能给学c的你一点帮助。

2023-11-14 02:37:04 63 1

空空如也

空空如也

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

TA关注的人

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