自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [数据结构]栈(Stack)的认识和基本算法

在计算机科学中,栈(Stack)是一种常见的数据结构,它是一种“先进后出”(FILO,First In Last Out)的线性数据结构,类似于现实生活中的堆栈。栈中的元素只能在栈顶添加或删除,无法在中间位置进行操作。

2024-05-09 23:51:00 398 2

原创 [数据结构] 队列(Queue)的认识和基本算法

队列就像是一群排队等待进入某个地方的人群,每个人都按照先来后到的顺序排队等候。在队列中,第一个进入队列的人最先被服务,而最后一个进入队列的人最后才能被服务。队列的特点就是先进先出,简称FIFO(First In, First Out)。比如在购物超市结账时的场景,顾客们排成一条长龙,第一个顾客先进入结账台,依次往后,最后一个才能被服务。这种排队方式就是队列的典型应用。以及医院和其他场景的一些叫号机也是同样的原理,这样确保了排队的公平性,先进的就一定先出,队列有头和尾,不像栈那样可能会有多出出栈的顺序。

2024-05-08 23:10:54 297 3

原创 力扣.链表.21.合并两个有序链表

思路:创建一个新链表,各自从头开始遍历两个旧链表,将较小的一个插入到新链表中。

2024-04-19 18:29:51 104 1

原创 力扣.链表.206.反转链表(配图解释)

2.创建3个节点(n1前驱节点,n2当前节点,n2后继节点),分别指向NULL,1,2,让指向1的指针n2“翻转”,使它指向n1的NULL,然后n1指向原来n2所指的1,n2指向原来n3所指的2,n3指向下一个节点。然后n1指向原来n2所指的1,n2指向原来n3所指的2,n3指向下一个节点(这样的两步就算是一个循环,如此成功的反转了旧链表的第一个节点)这时候反转已经完成了,结束的条件就是n2不能为空,且新链表的头结点是n1.1.创建一个新链表,遍历旧链表的所有节点将其头插到新链表上。

2024-04-18 01:30:29 270 4

原创 力扣.链表.876.链表的中间节点

定义两个指针,一个fast,一个slow,让fast一次走两个节点,slow一次走一个节点,当fast走到头的时候slow的位置就是中间节点,这样只用了一个循环,妙啊!看到题目,会想到之前xieC语言的时候类似的题目,思路清晰而明了:用计数器(count++)遍历链表,然后除2得到中间位置,然后使用for循环得到中间节点。但错误答案先执行Fast->next,这个时候如果Fast已经空了,就不存在Fast->next了,当然会报错。这里将会介绍到一种新的算法思想,这里先酝酿一波。

2024-04-16 01:17:30 203 1

原创 力扣.链表.203. 移除链表元素

思路2:创建一个新链表,遍历旧链表,当节点的值不等于val时,尾插到新链表上。思路1:遍历链表遇到符合val的节点就进行删除。

2024-04-15 23:54:04 169 4

原创 交换奇偶位

1.分别取出该整数位的 奇数位 和 偶数位(&0101 0101(5 5)得到奇数位,&1010 1010(a a)得到偶数位)有些整数的二进制形式很特殊,可以借助Windows系统自带的计算器,快捷计算出该整数的二进制形式。0xaaaaaaaa = 10101010101010101010101010101010 (偶数位为1,奇数位为0)2.让奇数位变成偶数位,偶数位变成奇数位(将奇数位<<1变成偶数位,偶数位>>1变成奇数位)题目:写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换。

2024-04-01 20:33:49 133 3

原创 strlen,strcpy,strcmp,strcat,strstr的模拟实现

直接以代码的形式进行呈现了。

2024-02-16 10:25:03 147 1

原创 深入理解指针:系统梳理与实践应用

指针是C语言中一个复杂但强大的概念,它提供了直接访问内存的能力,使得程序员能够高效地操作和管理数据。本博客旨在系统地梳理指针相关的知识点,并通过具体的例子加深理解。

2024-02-16 08:22:44 866 2

原创 判断一个字符串是否为另外一个字符串旋转之后的字符串

判断一个字符串是否为另外一个字符串旋转之后的字符串

2024-02-10 23:13:35 188 2

原创 用编程实现strlen函数的功能

当你有一个指向字符数组(字符串)的指针时,这个指针实际上存储的是数组第一个元素(第一个字符)的内存地址。这个行为基于C语言的指针算术规则,其中指针的加减操作是根据指针指向的数据类型的大小来进行的。操作时,它会移动到内存中的下一个字节,即字符串中的下一个字符。类型数据的大小,通常是1个字节。对于字符指针来说,一个单位等于一个。遍历传入的字符串,计数直到遇到终止字符。有疑问,那么下面的文字可能会帮到你。p++可以移动到字符串的下一个字符。能够移动到下一个字符的原因。(字符串的结束标记)为止。

2024-01-02 17:40:01 493 3

原创 统计某类完全平方数

注:因为这里在传值的时候使用了const,所以不能改变N的值,故用n = N来代替计算,后面换成n即可。思路:先实现1完全平方数的判断,再考虑2是否有重复出现的数字。2至少有两个数字相同。

2023-12-23 16:59:58 562 5

原创 输入10个整数,要求按输入时的逆序把这10个数打印出来。逆序输出,就是按照输入相反的顺序打印这10个数。

描述输入10个整数,要求按输入时的逆序把这10个数打印出来。逆序输出,就是按照输入相反的顺序打印这10个数。输入描述:一行,输入10个整数(范围-231~231-1),用空格分隔。输出描述:一行,逆序输出输入的10个整数,用空格分隔。示例1输入:1 2 3 4 5 6 7 8 9 10复制输出:10 9 8 7 6 5 4 3 2 1

2023-12-02 22:29:20 2074 1

原创 求多项式1-1/2+1/3-1/4......+1/99-1/100的和

求多项式1-1/2+1/3-1/4......+1/99-1/100的和

2023-12-01 15:45:22 93 1

原创 分支循环语句介绍

分支语句和循环语句是C语言中控制程序流的关键工具。通过适当使用if-elseswitchwhilefor等语句,我们可以实现更加复杂和灵活的程序逻辑。在编写代码时,根据实际需求选择合适的分支和循环结构,可以使程序更加清晰、高效。

2023-11-19 00:05:56 32

原创 if else语句的详解

首先,让每个else下嵌套的if前的空格都删去,让后面一行的if (表达式)跟在else之后,当然要注意使用空格把他俩隔开,后面的语句处在下一行。重复进行上面的操作,然后简单的进行格式的首行缩进的调整就得到了上面的结果啦。嵌套if的用法已经写在代码的注释中了,简单来说就是在else之后无限进行if else if ...的循环,但由于后面的循环都包括在前面的else中,所有要加上{}把每个else之后的内容括起来。后面的else的使用也类似,但可以不加,单独使用if也是可以的。if else的使用格式为。

2023-10-16 03:15:13 365 1

原创 C语言中的复合赋值符“+=,-=,*=,/=,%=”的详解

e %= 6意思就是:把e除以6得到的余数余数,然后再把模完之后的数字赋给e。同样也可以把“+=,-=,*=,/=,%=”左右两边的数都换成同样的a,b,c,d,e如上图,原理不变。a += 7意思就是:把7加给a,然后再把加完之后的数字赋给a。写成具体的表达式:a = a + 7。b -= 8意思就是:用a减去8,然后再把减完之后的数字赋给b。c *= 9意思就是:将c乘上9,然后再把乘完之后的数字赋给c。d /= 5意思就是:把d除以5,然后再把除完之后的数字赋给d。以第一个“+=”为例。

2023-10-15 20:16:31 3727 1

原创 通过键盘输入一个四位整数,计算这个数每位数字的和(比如输入1234,输出“这个数每位数字的和为10”)

这里每一位我都打印一次是为了方便检查哪一步出了问题,这道题的话这样做相比按F10会更直观一点,然后一点点调试。乍一看完全没有思路,但用到的其实都是最基本的函数,重点在于巧妙的利用了整数相除时只打印除数而忽略余数的特性。(忽略后面那个if else,那是最开始思路不对的时候给自己带来点乐趣的小玩意)这是一道学校老师布置的思考题,确实是很有意思。所以只要会用printf和scanf就足以了。从最高位开始往个位运算。

2023-10-15 01:33:27 485 1

空空如也

空空如也

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

TA关注的人

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