
C语言
文章平均质量分 84
C语言基础语法以及C语言实现的基本数据结构
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO
向前看,不回头
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
并查集和哈夫曼树
并查集是一种数据结构,用于处理不交集的合并以及查询问题。例如:以下的一张图中如何查询两个点是否相连,如何连接两个点,这都要用到今天的并查集。对于这两种操作,并查集合并和查询的其中两种,分别是quickFind和quickUnion。对与quickFind而言,它是将所有的元素进行ID分组管理,每一个元素对应一个ID号,若要是在查找时,只需要找ID号码是否相同即可,对于合并操作,直接将其中一组的ID号修改为另一组的ID号即可。原创 2024-09-09 19:07:07 · 1202 阅读 · 0 评论 -
C语言实现红黑树
平衡树的搜索效率最高,但是由于平衡因子的限制,如果是进行插入和删除操作时,没有达到左右子树高度相差不超过1这个平衡条件,就会执行旋转操作使其达到平衡状态,频繁的调整会使其性能下降,那么如何弱化平衡条件,使其不在频繁的调整就可以很好的达到我们所需要的平衡呢?为了实现这一目的,红黑树应运而生。红黑树是一种,因此它也:任意节点所包含的值,大于左孩子的值,小于有孩子的值。不仅如此,它还有一些其他的特征。红黑树的特性:1.每个节点是红色或是黑色。2.根节点是黑色。原创 2024-10-01 12:27:19 · 713 阅读 · 0 评论 -
数据结构--树(低阶树)
树是n个节点的有限集合,满足1.有且只有一个根节点;2.其余节点可以分为m个的子集,每一个子集也是一颗树,称为根的子树。原创 2024-09-03 18:56:49 · 1120 阅读 · 0 评论 -
整数和浮点数在内存中的存储
1. 2进制中满2进12. 2进制的数字每⼀位都是0~1的数字组成二进制转十进制 例如:1011(2)怎么转换呢?从右向左看起:分别为:2^0,2^1,2^2,2^3……那么1011(2) = 1 * 2^0 + 1 * 2 ^1 + 0 * 2^2 + 1 * 2 ^3 = 11那么十进制如何转换为二进制呢?例如:125(10)125去除2,舍去余数,用商继续除以2,直到商为0,将余数进行倒序排列,即得1111101由此可以引出,数据在内存中的存储。原创 2024-03-19 22:11:24 · 496 阅读 · 2 评论 -
关于链表顺序表等一些理解(初版)
本篇文章大致梳理了顺序表到队列的一些操作(不全,以后会补)堆区:存放动态分配的内存,程序员通过调用malloccallocrealloc等函数手动申请内存,但是需要注意手动释放以避免内存泄漏。栈区:栈区存放函数调用相关的临时数据,例如函数的局部变量、函数参数和函数调用的上下文信息。栈的内存分配和释放由编译器自动管理,其生命周期与函数的执行周期相关。数据区:数据区是用于存放静态分配的全局变量、静态变量和一些常量的内存区。原创 2024-03-09 16:45:47 · 895 阅读 · 0 评论 -
C语言之文件操作
文件是一种持久性存储数据的方式。计算机的内存是临时的,而文件可以长期存储在硬盘或其他存储介质上,即使在计算机关闭后也可以保留数据。文件是一种存储数据的方式。在程序设计中,按功能分为程序文件(例如:可执行程序文件.exe,源程序文件.c,目标文件.obj)和设计文件(程序读写时的数据)两种。本次讨论数据文件。二进制数据的文件,其中的数据以二进制形式表示,而不是像文本文件那样使用可读的字符编码。原创 2024-03-28 20:27:32 · 379 阅读 · 0 评论 -
扫雷--简单代码实现
首先,为了方便更改棋盘的大小,设计时定义变量ROW和COL用来表示行和列;由于有空地和雷区的分布,我们将空地表示为'0',雷表示为‘1’,但是不能向玩家展示,所以应该初始时进行掩盖,这里用“*”表示,为了方便,将棋盘进行分开,空地和雷区为一组,玩家进行扫除为一组;由于扫雷时扫到空地,周围显示雷的个数,为了使边界的雷容易表示,我们将玩家扫除那一组行和列进行处理,在增添第一行和最后一行,即ROW+2和COL+2;为了方便,我们使用set来初始'*',和'0'原创 2024-02-02 21:37:44 · 368 阅读 · 0 评论 -
指针的初版总结
首先,C语言的目标是对内存的访问。在计算机系统中,CPU和内存是相互依存、密切配合的两个重要组成部分,它们共同决定了计算机的运行效率和性能。CPU主要对指令进行解析,执行,受限于芯片体积,功耗等因素,CPU内部很难做到大存储,这样CPU要执行的指令和数据必须外置,那么CPU如何访问到指令和数据呢?CPU要对它们进行寻址,才能找到它们。C语言给地址起了新名字,称为指针。原创 2024-03-05 21:16:55 · 909 阅读 · 0 评论 -
动态内存管理
二:sizeof(XXX) *n ,括号里可以放的取决于等号左边的类型,n表示申请几个。可以做到对动态开辟内存大小的调整,传入的参数为ptr,即调整的内存地址,size,即调整后的大小。(3)只需要传申请空间的大小。注意:(1)开辟空间后一定要检查,判断开辟的空间是否为空。与malloc类似,但是可以将初始空间的每个字节初始化为0。(2)由开发者自己定义返回的类型。(2)原有空间没有足够大的空间。向内存申请一段连续的空间,返回指向这段空间的指针。注意:(1)原有空间有足够大的空间。原创 2024-03-21 23:24:55 · 340 阅读 · 1 评论 -
初识结构体
结构体是一种用户自定义的数据类型,可以用来存储不同类型的数据项。结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量,如:标量、数组、指针,甚至是一些其他的结构体结构体的声明和定义。原创 2024-03-19 17:47:52 · 518 阅读 · 1 评论 -
C语言实现线索二叉树和搜索树以及平衡树
背景:一棵节点数目为n的二叉树,如果采用二叉链表的形势进行存储,每个节点有两个指针域,共有n-1个有效分支路径,那么则二叉链表中存在2n-(n-1) = n + 1个 空指针域我们对它进行中序遍历,得到顺序:DBEAC,可以得到A的前驱是E,A的后继是C,那么我们可不可以在遍历之前就得到节点的前驱和后继呢?如果得到,那么是不是查找效率就会大大提升。我们将某节点的空指针域指向它的前驱和后继。原创 2024-09-04 17:40:35 · 803 阅读 · 0 评论 -
C语言字符函数和字符串函数及内存函数的一些说明及实现
获取字符串的长度:传入的字符串指针开始,逐个检查字符,直到遇到字符串末尾的空字符 \0。原创 2024-03-16 14:41:25 · 360 阅读 · 1 评论 -
C语言分支和循环
代码中用if-else的嵌套来展示if-else的一些用法,其中用自定义函数来限制用户的输入。原创 2024-01-24 21:03:03 · 811 阅读 · 0 评论