- 博客(15)
- 收藏
- 关注
原创 数据结构——带环链表、循环队列问题
循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。以上便是本期讨论的两个数据结构问题,欢迎大家评论讨论交流。快指针一次走两步慢指针一次走一步。代码实现:(链表的实现请跳转☞。
2024-07-02 13:40:23
558
4
原创 数据结构——栈(Stack)和队列(Queue)详解
队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾出队列:进行删除操作的一端称为队头。实现,相对而言数组的结构实现更优一些。只允许在一端进行插入数据操作,在另一端进行删除数据操作。:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。:栈的删除操作叫做出栈,出数据也在栈顶。
2024-07-01 13:10:41
450
6
原创 顺序表、链表
静态顺序表的定长数组导致N定大了,空间开多了浪费,开少了不够用。所以现实中基本都是使用动态顺序表,根据需要动态的分配空间大小,所以下面我们实现动态顺序表。实际中使用的链表数据结构,都是带头双向循环链表。)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等。的存储单元依次存储数据元素的线性结构,一般情况下采用。,数据元素的逻辑顺序是通过链表中的指针。
2024-06-28 12:08:20
441
3
原创 C语言——编译链接
我们在test.c 文件中每一次使用 Add 函数和 Y 的时候必须确切的知道Add 和g Y 的地址,但是由于每个文件是单独编译的,在编译器编译test.c 的时候并不知道Add 函数和 Y变量的地址,所以暂时把调用 Add 的指令的目标地址和 Y 的地址搁置。等待最后链接的时候由链接器根据引用的符号Add 在其他模块中查找Add 函数的地址,然后将test.c 中所有引用到Add 的指令重新修正,让他们的目标地址为真正的Add 函数的地址,对于全局变量 Y 也是类似的方法来修正地址。
2024-05-17 10:31:48
696
1
原创 C语言结构体详解
结构体是⼀些值的集合,这些值称为成员变量。结构体的每个成员可以是不同类型的变量。值得注意的是结构体类型是一种变量类型!类比int、char等都是变量类型的一种。位段的声明和结构是类似的,有两个不同:位段的成员必须是int或signed int,在C99中位段成员的类型也可以选择其他类型。位段的成员名后边有⼀个冒号和⼀个数字。int _b : 3;
2024-05-06 11:49:01
1639
3
原创 整数与浮点数在内存中的存储
1.整数在内存中的存储整数的2进制表⽰⽅法有三种,即原码反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位最高位的一位是被当做符号位,剩余的都是数值位。:直接将数值按照正负数的形式翻译成二进制得到的就是原码。:将原码的符号位不变,其他位依次按位取反就可以得到反码。:反码+1就得到补码。对于整型来说:数据存放内存中其实存放的是。
2024-05-03 17:45:47
1505
原创 C语言——字符函数、字符串函数及内存函数
如果source 指向的字符串的⻓度⼩于num的时候,只会将字符串中到\0 的内容追加到destination指向的字符串末尾。C语⾔中有⼀系列的函数是专⻔做字符分类的,也就是⼀个字符是属于什么类型的字符的。将source指向字符串的前num个字符追加到destination指向的字符串末尾,再追加⼀个。如果源字符串的⻓度⼩于num,则拷⻉完源字符串之后,在⽬标的后边追加0,直到num个。第⼀个字符串⼤于第⼆个字符串,则返回⼤于0的数字。第⼀个字符串⼩于第⼆个字符串,则返回⼩于0的数字。
2024-04-25 12:49:07
604
6
原创 C语言分支循环语句——if语句
C语言是结构化的程序设计语言,包括以及。其中顺序结构就是按照代码先后顺序执行,分支结构可以通过和来实现,循环结构则可以通过以及实现。
2024-03-24 14:49:25
319
1
原创 “%d”、“%4d”、“%-4d”的使用
总结:“%4d”打印结果是右对齐的效果,在左侧以空格补齐;“%-4d”打印的结果是左对齐,在右侧以空格补齐;若被打印整数超过4位数,则正常打印不会被截断。“%d”是printf ()函数的占位符之一,打印的是十进制整数。其中'\n'表示换行;我用'*'表示打印出结果的后一位方便观察。但是,如果被打印的整数是个5位整数是什么效果呢?明显看出“%4d”打印出来的结果是右对齐,不足则补空格。打印的结果和“%d”相同,并不会发生截断现象。结果是左对齐的效果,不足则在右侧用空格补齐。
2024-03-24 10:20:39
565
2
原创 时机已到,今日起兵
首先站在一个菜逼的视角,我目前的目标是让自己的编程水平在一年后能达到做个小项目的水平,为此我打算每天练习写代码,并在gitee日常投放我写的“垃圾”,平均一周花费21小时学习编程,如果可以的话,能把这项技能当作职业的话,我最想进入华为(doge),或许是我在痴人说梦,但梦还是能做的。各位好,我是个已经毕业大半年的菜逼,23岁才醒悟知道要搞实力,但我觉得也不是很晚,所以决定从现在开始学习编程,以后会阶段性的在这里记录我的学习历程。以后我会经常来投放“垃圾”,直到我不再写出垃圾。
2024-03-22 10:35:15
93
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人