自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 二叉树及其遍历

树是一种非线性结构,由n个结点组成的具有层次关系的结合,有一个特殊的结点为根结点,在树中,子树之间不能有交集。:若一个结点含有子结点,则这个结点称为其子结点的父结点;:一个结点含有的子树的根结点称为该结点的子结点;:以某结点为根的子树中任一结点都称为该结点的子孙。:一个结点含有的子树的个数称为该结点的度;后序遍历:访问根结点发生在访问左右子树之后。层序遍历:按照二叉树的层数访问每层的结点。:具有相同父结点的结点互称为兄弟结点;:一棵树中,最大的结点的度称为树的度;:从根到该结点所经分支上的所有结点;

2024-05-25 16:57:32 160 1

原创 C语言数据结构:栈和队列

在入栈前,我们需要先判断剩余空间是否足够,如果足够则直接入栈,如果不足需要先进行扩容(二倍)再入栈,如果栈为空则需要初始设定栈容量为一个定值。栈是只允许在一段插入或删除的线性表。出栈直接让top--即可,无需回收。与栈不同的是,队列是严格的先进先出。出队需要首先判断对内是否只有一个元素。栈又被称为是允许先进后出的线性表。首先我们设定一个结构体为stack。判空只需要判断栈顶数据是否为0个。栈底:不允许插入和杀出的一端。栈顶:允许插入和输出的一端。入队需要额外判断队是否为空。4、队首元素和队尾元素。

2024-05-18 17:54:48 255

原创 链表有环问题

通过一系列运算,我们发现L=(x-1)*C+(C-N);我们设定两个指针:fast和slow,fast的移动速度是slow的两倍,即fast移动两步,slow移动一步。如果该链表不带环,则能保证fast始终位于slow前面,也就是fast和slow不会指向同一个节点。在上一题的基础上,我们看这个问题。

2024-05-05 12:51:43 270

原创 编译和链接

在ANSI C中存在两个不同的环境,一是翻译环境,在这其中源代码被转换为可执行的机器指令(二进制指令),二是执行环境,它用于实际执行代码。

2024-03-30 19:41:51 329 1

原创 C语言文件操作

打开一个文件时,系统会自动创建一个FILE结构类型的变量,我们一般通过一个FILE的指针来维护FILE结构的变量,这样使用起来更加方便,例如。上表中适⽤于所有输⼊流⼀般指适⽤于标准输⼊流和其他输⼊流(如⽂件输⼊流);所有输出流⼀般指适⽤于标准输出流和其他输出流(如⽂件输出)fseek函数可以根据指针的位置和偏移量来定位指针。其中mode表示文件打开模式,例如r为只读,w为只写等等。ftell函数可以返回文件指针相对于起始的偏移量。rewind函数可以让文件指针返回文件的起始位置。以上就是本篇博客全部内容。

2024-03-30 17:04:08 279 1

原创 结构体与内存对齐原则

对齐数位编译器默认对齐数与该成员变量大小的较小值。其中VS的默认对齐数为8,Linux中gcc没有默认对齐数,对齐数为其自身变量大小。4、如果结构体中嵌套了结构体,嵌套的结构体对齐到自己成员的最大对齐数的整数倍处。在VS2013下,默认对齐数为8字节,这个结构体所占的空间大小为( )字节。1、结构体的第一个成员对齐到与结构体变量起始位置偏移量为零的地址处。2、结构体的其他成员变量要对齐到某个数字(对齐数)的整数倍处。3、结构体的总大小需对齐到最大对齐数的整数倍。

2024-03-22 20:24:14 314 1

原创 数据在内存中的存储

正整数的原码、反码和补码相同,而负整数的反码为将原码的符号位不变,其余位按位取反,补码为反码加1。是指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存在内存的低地址处。有符号的整数,最高位为符号位,其他位为数值位,符号位为0表示为正数,符号位为1表示负数。是指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存在内存的⾼地址处。按规定,32位浮点数最高一位存储S,接下来的八位存储E,剩下的23位存储M。这就意味着,浮点数的存储,实际上存储的是S M E三个数。

2024-03-22 19:35:40 238 1

原创 库函数的模拟实现

strcmp函数是对两个字符串进行比较的函数,通过对字符串中字符的ASCII码的逐一比较,如果两个字符串相同,结果返回零,如果第一个字符串大于第二个字符串,返回大于0的数,否则返回小于零的数。strcat函数是在一个字符串的‘\0’处开始追加另一个字符串。返回字符串中‘\0’之前的字符个数。

2024-03-22 17:03:39 207 1

原创 使用冒泡排序模拟实现qsort函数

同时,因为我们不知道需要排序的两个元素的变量类型,而且bubble_sort函数接受的arr也是void类型的,所以我们在swap中使用void函数来进行接收。3、由于我们在模拟qsort函数时不知道要排序的变量类型,所以需要另写一个函数来给出比较两个元素大小的方式(即qsort函数中需要使用者完成的compare function部分);如我们所见,qsort函数需要的参数有:需要排序的数组(字符串)、数组(字符串)长度、每个元素的大小和一个需要自己来完成的比较两个元素大小的函数。

2024-03-13 13:53:32 405

原创 qsort函数的使用

qsort函数的使用

2024-03-09 19:37:23 454 2

原创 指针(2)

const修饰和野指针成因

2024-03-06 10:37:07 443 1

原创 指针(1)

指针初步理解和指针变量类型的意义。

2024-03-05 19:53:34 721 1

原创 C语言:循环

可以看到,这两种循环产生的结果是一样的。for循环将循环的三个要素放在一起,比起while循环更加直观。do-while循环与while循环的区别在do-while循环先执行后判断,及一定会执行一次。先判断表达式是否为真,如果为真,则进入循环,如果为假,则跳出循环。break意味着跳出循环,而continue代表跳出本次循环。其打印结果与for、while一致。打印出101-200所有的素数。for循环使用格式如下。

2024-01-28 10:39:23 307 1

原创 C语言:分支

如果if的表达式为真,则执行if后的语句,否则执行else后的语句,如果不止两种情况,则可使用else if进行填充,使用方式与if一致。在C语言中,很多同学会把=和==弄混。注意,=表示赋值,如a=2表示将2赋值给a,而==用于判断是否相等,如a==2表示a等于2。>= 大于等于运算符;如果if或else if或else后有多条语句,则须使用{}将语句全部框起来。switch通过表达式的不同可能值来实现分支,注意,数值只能为int类型。== 相等运算符;:取反,a不等于0,!||:表示或,一真则真。

2024-01-27 16:40:27 247

原创 C语言:失败就关机的猜数字游戏!

猜错了就强制关机的猜数字游戏!

2024-01-26 21:19:47 446

原创 C语言日常——方阵相乘

二阶方阵相乘的C语言实现

2024-01-17 23:18:25 574

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除