卡卡罗特mmmmm
码龄1年
关注
提问 私信
  • 博客:8,624
    8,624
    总访问量
  • 13
    原创
  • 88,453
    排名
  • 162
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:山西省
  • 加入CSDN时间: 2024-03-26
博客简介:

2401_83906677的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    2
    当前总分
    159
    当月
    0
个人成就
  • 获得288次点赞
  • 内容获得20次评论
  • 获得181次收藏
创作历程
  • 13篇
    2024年
成就勋章
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

数据结构—C语言实现栈和队列

栈:一种特殊的线性结构,其只允许在固定的一端进行插入和删除元素操作,进行数据插入和删除操作的一端称为栈顶,另一端称为栈底,栈中的元素数据遵守后进先出的原则。注意点:若队列中只有一个结点,进行头删后,队列为空,为避免尾结点成为野指针,因此要分类讨论。只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出。先创建新结点,储存数据,若队列为空,则头结点和尾结点同时指向新结点;否则,进行将新结点插到尾结点后面,则新结点为新的尾结点。出栈:栈的删除操作叫做出栈,出数据也在栈顶。
原创
发布博客 2024.07.27 ·
425 阅读 ·
13 点赞 ·
7 评论 ·
10 收藏

数据结构—C语言对单链表的实现

如果大于一个结点,找到尾结点ptail和尾结点的前一个结点prev,将prev的next置为NULL,将ptail结点free,再置为NULL。思路:先将pos的next结点用del记录下来,再将pos的next指向next的next,实现删除,再对del进行销毁,再置为NULL。否则,找到pos的前一个结点,将前一个结点的next指向pos的next,销毁pos,在置为NULL。思路:比较简单,创建新结点,将新结点的next指向pos的next,再将pos的next指向新结点。单链表的逻辑结构是线性的;
原创
发布博客 2024.07.26 ·
721 阅读 ·
36 点赞 ·
5 评论 ·
20 收藏

顺序表的动态实现

插入元素前,先检查顺序表是否还有空间,如果空间不够,则创建新空间。因为后续会经常用我们见检查顺序表的函数封装起来。顺序表的底层逻辑就是数组,静态顺序表空间给小了不够用,给大了,容易浪费空间,因此可以动态实现顺序表。包括动态创建数组时需要一个指向数组的指针,一个变量来表示数组的最大容量,一个变量用来表示目前的大小。方便后续写代码的便利。seqlist.c seqlist.h用来实现顺序表。完成顺序表的结构后,完成对顺序表的初始化。在使用完后,要进行顺序表的销毁。物理结构:不一定是线性的。
原创
发布博客 2024.07.16 ·
348 阅读 ·
11 点赞 ·
7 评论 ·
13 收藏

数据在内存中的储存

其实超过一个字节的数据在内存中储存的时候,就有储存顺序的问题,按照不同的储存顺序,我们分为大端字节序储存和小段字节序储存,下面是具体的概念:大端(储存)模式:是指数据的低位字节内容保存在内存的高地址处,而数据的高位字节内容,保存在内存的低地址处。小端(储存)模式:是指数据的低位字节内容保存在内存的低地址处,而数据的高位字节内容,保存在内存的高地址处。上述概念需要记住,方便分辨大小端。
原创
发布博客 2024.06.25 ·
1719 阅读 ·
49 点赞 ·
0 评论 ·
52 收藏

C语言内存函数

memset是用来设置内存的,将内存中的值以字节为单位设置成想要的内容,如果源空间和目标空间出现重叠,就得使用memmove函数处理。如果aaa和bbb有任何的重叠,复制的结果都是未定义的。
原创
发布博客 2024.06.02 ·
247 阅读 ·
9 点赞 ·
0 评论 ·
5 收藏

字符函数和字符串函数

C语言中有一系列函数是专门做字符分类的,也就是一个字符是属于什么类型的字符。这些函数的使用都需要包含一个头文件ctype.h这些函数的使用方法非常类似,我们就讲解一个函数,其他的类似islower是判断参数部分的c是否是小写字母的。通过返回值来说明是否是小写字母,如果是小写字母就返回非0的整数,如果不是小写字母,则返回0.练习:写一个代码,将字符串中小写字母转大写,其他字符不变。
原创
发布博客 2024.06.01 ·
352 阅读 ·
12 点赞 ·
0 评论 ·
4 收藏

初识指针3

所以函数形参的部分理论上应该使用指针变量来接受首元素的地址.那么在函数内部我们写sizeof(arr)计算的是一个地址的大小(单位字节)而不是数组的大小(单位字节).正是因为函数的参数部分的本质是指针,所以在函数内部是没办法求数组的元素个数的.可以看到&data[0]和&data[0]+1相差4个字节,data和data+1相差4个字节,&data[0]和data都是数组的首元素地址,+1就是跳过4个字节.数组我们学过了,之前也讲过了,数组是可以传给函数的,那我们来讨论一下数组传参的本质.
原创
发布博客 2024.05.30 ·
1409 阅读 ·
49 点赞 ·
0 评论 ·
20 收藏

初识指针2

因为在数组中是连续存放的,只要知道第一个元素的地址,顺藤摸瓜就知道所有的元素。可以通过指针来实现数组的访问。代码如下:这就是通过指针的方式来打印数组。
原创
发布博客 2024.05.13 ·
283 阅读 ·
4 点赞 ·
0 评论 ·
6 收藏

初识指针1

在此之前,我们先来介绍一下内存和地址的关系,我们将内存分成一块一块,最小的内存单位是字节,而一个字节是8个比特位,一个比特位可以储存一个二进制位。而每一个字节都有一个编号。我们可以通过地址去找到每一个字节所在的位置。
原创
发布博客 2024.05.12 ·
452 阅读 ·
22 点赞 ·
0 评论 ·
9 收藏

C语言进行扫雷游戏的详细思路和实现

这是我们常见的扫雷游戏的画面,这里我们准备一个9*9的棋盘,我们假设用1和0来充满整个棋盘,用1来表示雷,0表示不是雷。当我们揭开一个格子后,得到1个数字来显示周围8个格子的雷的数量。但这样会出现问题,比如我们这里揭开最中间的数字,周围8个格子的雷的数量是1,数字就会从0变成1,显示给玩家,但是这个数字1到底表示是雷,还是周围8个格子雷的数量。就会产生冲突。这里我们的解决办法是直接准备两个棋盘,一个装满0或1来表示不是雷或是雷。另一个棋盘用来展示给玩家。
原创
发布博客 2024.04.29 ·
1876 阅读 ·
63 点赞 ·
1 评论 ·
33 收藏

C语言的循环语句

首先执行表达式1初始化循环变量;接下来就是执行表达式2的判断部分,若表达式为真执行语句,若为假,则跳出循环;while和for两种循环都是先判断条件,条件满足就进入循环,不满足就跳出循环,而do......while循环则是先执行循环语句,在执行while后面的判断表达式,若为真则继续循环,为假则跳出循环。do......while循环上来先执行一次语句,在进行表达式的判断,若为真,则继续进行循环,若为假则跳出循环,在执行完第二次循环后·,再根据表达式的判断是否执行下一次循环还是跳出循环。
原创
发布博客 2024.04.14 ·
348 阅读 ·
10 点赞 ·
0 评论 ·
5 收藏

C语言的分支语句

break一般出现在case和default语句的后面,当执行完case语句后,若想跳出语句,则在case语句后加上break,则会在执行完语句后跳出switch语句。一个整数不是奇数就是整数,当我们需要判断一个整数是奇数还是偶数时就需要“if.........else”语句了。if语句后默认只控制1条,如果想控制多条语句,则用{}将多条语句括起来。如果不在case语句中加入break,则可能出现执行多条语句的结果。当表达式无法在case中找到时,则执行default后的语句。case 值1:语句1;
原创
发布博客 2024.04.13 ·
246 阅读 ·
9 点赞 ·
0 评论 ·
4 收藏

我的第一篇博客

我希望能在未来三个月的时间内掌握C语言的基本知识,并且开始学习数据结构,我会在每周都给14个小时以上的学习编程的时间,并且学习408的4门课来参加今年的25考研。我的学习方法是先看一遍网课,虽然书上的知识点已经很齐全,但还是要把网课上讲的内容知识点自己整理写在笔记本上,再通过书教材去复习并完成教材后习题,习题我一般通常都会反复做,书上的算法,我会自己多写理解几遍,并在电脑上进行验证实际上手操作。
原创
发布博客 2024.03.29 ·
198 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏