- 博客(13)
- 收藏
- 关注
原创 算法十日谈:双指针
使用双指针的目的无非两种,其一是控制距离,其二是区间维护。控制距离时使用的双指针称为快慢指针,又称龟兔赛跑算法,在处理循环链表或者数组时较为常用,其基本思想就是使⽤两个移动速度不同的指针在数组或链表等序列结构上移动,但实际上只要遇到循环结构都可以考虑使用快慢指针来判定循环。区间维护时使用的双指针称为对撞指针,又称左右指针,在处理顺序结构时较为常用,其基本思想就是使用两个指针从两端向中间移动,其难点一般在于边界情况的处理。二、例题2.1 移动零。
2026-01-13 12:56:39
646
原创 26版王道数据结构第四章知识点汇总
字符串,简称串,计算机上非数值处理的对象基本都是字符串数据。常见的信息检索系统(如搜索引擎)、文本编辑程序(word)、问答系统、自然语言翻译系统等,都是以字符串数据作为处理对象的。模式匹配是指在主串中找到与模式串(想要搜索的某个字符串)相同的子串,并返回其所在的位置。这里采用定长顺序存储结构,给出一种不依赖于其他串操作的暴力匹配算法。++i;++j;//指针后退重新开始匹配return 0;
2025-06-12 19:37:00
551
原创 26版王道数据结构第三章知识点汇总
栈(Stack)是只允许在一端进行插入或删除操作的线性表。栈顶(Top):允许插入或删除的那一端。栈底(Bottom):固定的,不允许进行插入和删除的另一端。空栈:不包含任何元素的空表。栈顶a5a4a3a2栈底a1栈的操作特性为后进先出(Last In First Out,LIFO)。
2025-06-03 10:07:16
741
原创 26版王道数据结构第二章知识点汇总
线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。若用L命名线性表,则其一般表示为其中,a1是“第一个”数据元素,也称表头元素,an是“最后一个”数据元素,也称表尾元素。线性表具有以下特点:1)表中元素的个数有限2)表中元素具有逻辑上的顺序性,表中元素有其先后次序3)表中元素都是数据元素,每个元素都是单个元素4)表中元素的数据类型都相同,这意味着每个元素占有相同大小的空间。
2025-05-20 10:13:32
857
原创 浅谈递归概念
递归,学编程的人肯定会接触的一个词,笔者第一次接触到它是在刘慈欣的《镜子》一文里:如果超弦计算机尝试查看未来时,它会不断调用自己,直到无限的内存被用完,形成单向递归。在C语言中,它的内容和迭代有些类似但又不完全一样,今天就借本篇博客来浅谈一下递归的概念。
2024-01-20 14:26:20
1415
原创 C语言新手调试案例
写编程的人初学的时候都会遇到一些意想不到的问题,按照自己的想法写出来了初版的代码却经常发现甚至运行不了,下面以我对某道题的解题过程为例,示范一下调试可以有哪些方法。
2024-01-17 23:35:36
964
原创 一个有趣的printf用法
printf属于是学C语言的时候最基础的一个函数了,但是初学者(比如我)可能只注意到它打印的功能,而忽略了它作为一个函数也是有返回值的,以下是我今天学习时发现的一个有点意思的用法。printf("%d" , printf("%d" , printf("%d" , 43))) 大家不妨猜想一下这行代码的运行结果是什么,当然如果你知道的话就可以直接往下看了。 我们这里先回顾一下printf的定义//C99起intprintf(const
2024-01-14 11:45:58
750
3
原创 super杨某人来CSDN了,望周知
我是super杨某人,从今天开始我就要正式入驻CSDN了,我今天写了个程序,还被我妈口头表扬了,望周知。
2023-12-13 18:51:11
108
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅