- 博客(9)
- 收藏
- 关注
原创 链表的环的问题
用一张我们最熟知的单链表和带环链表同时出现的图来向大家解释:相信通过这张图,大家就能很清楚的初步了解到我们要介绍的带环链表,带环链表和单链表唯一的区别是,单链表的尾结点的指向下一个结点的指针为空,而带环链表的尾结点的指向下一个结点的指针是该链表上的任意一个结点,以此形成了一个类似于环形的结构,因此我们称其为带环结点;那它和我们早知道的无头单向不循环链表有什么区别呢?单向无头不循环链表的尾结点仅仅指向的是链表的头结点,我们可以将其看做是带环链表的一个特例;
2024-06-04 11:29:02
680
原创 贪吃蛇小游戏C语言全实现
这张图展示的想必是我们再熟悉不过的一个小游戏,想来我们一定听说过贪吃蛇,吃掉食物,增加自身长度,这款游戏一直以来也有着不小的热度;而我们在玩这款游戏的时候,是否有思考过,我们所操控的这个蛇初始是怎样生成的?又是如何运动、如何增加自身长度的?又是以一种怎样的方式宣告它的结束?那今天这篇文章,就来像大家展示一个,用C语言实现一个简易版贪吃蛇的全过程,来向大家展示,贪吃蛇最初的长度是如何生成的,它如何移动以及如何吃掉食物等一系列问题,来帮大家更好的了解这个游戏的本质,相信大家在看完这篇文章后,会对贪吃蛇的代码实现
2024-04-23 11:10:46
736
2
原创 链表的应用——链表实现通讯录
既然要将链表结点中存储的数据的类型改为结构体类型,那么我们当然要把这个结构体给定义出来,这个结构体中需包含联系人的信息,如姓名、性别、年龄、电话号码、家庭地址。int age;}PI;然后将链表结点中存储数据的类型改为PI这一结构体类型;
2024-04-13 11:00:13
827
3
原创 反转链表相关问题
为了做到链表指定区间的翻转,我们需要找到整个区间的前一个结点(这里用prev表示)和第一个结点(q表示),q需要保存起来,用来链接翻转指定区间后的链表,cur为一个会移动的节点,它需要从翻转区间的第一个结点走到整个区间后的第一个结点,在移动的过程中我们要使cur->next指向prev->next,因为prev的next最后需要指向翻转区间的最后一个结点,因此它的next需要跟随着cur向后走而不断改变,最后cur需要刚好指向整个区间后的第一个结点,prev就指向了翻转区间的最后一个结点;
2024-04-07 18:33:08
939
1
原创 顺序表的应用——通讯录的实现
我们知道,顺序表是将各种类型数据存储到一块连续的空间中,存储数据的类型多样,意味着顺序表的使用方式也多样化,在我们的实际生活中,顺序表的应用非常广泛,这篇文章就来向大家介绍顺序表在我们日常生活中的一种应用——顺序表实现通讯录,所谓通讯录,就是当顺序表中数据存储类型改为存放着联系人信息的结构体类型时,顺序表就可以等同于我们日常生活中的通讯录,实现这种顺序表的增删查改,也就相当于通讯录联系人的增删查改,因此,这种代码实现对于我们自身能力的提升非常重要,在巩固我们知识的同时,还加深了对顺序表的理解和使用;
2024-04-04 08:38:46
841
4
原创 两个栈实现队列
assert(ps);assert(ps);//先检查容量exit(-1);assert(ps);ps->top--;assert(ps);assert(ps);assert(ps);assert(ps);exit(-1);return pq;//将数据尾插到两个队列中不为空的队列,都为空就随便插一个;if (!else。
2024-03-31 21:33:22
654
4
原创 (最简单的数据结构)静态顺序表
sl->size++;//将所有的数据向后挪一格tmp--;sl->size++;sl->size--;//头删:将所有的数据往前挪一格,再把有效大小减一;tmp++;sl->size--;int i = 0;for (i = 0;tmp--;sl->size++;sl->size--;
2024-03-23 19:34:24
164
原创 练习使用动态内存相关的函数
练习使用动态内存相关的4个函数,并调试观察malloc函数在内存堆区申请一块空间,并返回指向这块空间的地址;如果开辟失败,则返回NULL;可以将malloc开辟的这块空间类比成一个数组,即我们利用malloc在堆区中开辟了一个数组;我们可以看到,malloc函数的返回值是一个void*类型的指针(该指针指向这块空间的首元素地址),所以我们可以开辟的空间可以是任意类型,即我们可以开辟出一个任意类型的数组;
2024-03-22 11:05:24
940
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人