自定义博客皮肤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)
  • 收藏
  • 关注

原创 七种常见的排序算法和实现

排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次 序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排 序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。 我们依次对下面排序进行讲

2024-08-22 09:48:54 1072

原创 二叉树和堆

现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统 虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点;我们左节点记录孩子的节点,右节点记录兄弟的节点,若没有孩子或兄弟则指向空。兄弟节点:具有相同父节点的节点互称为兄弟节点;节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;

2024-08-21 20:03:31 809

原创 顺序表和链表

顺序表和链表都是线性表,线性表是一种在实际中广泛使用的数据结 构,常见的线性表:顺序表、链表、栈、队列、字符串...

2024-08-07 09:51:09 291

原创 文件管理和有关文件管理的函数

二进制文件和文本文件的区别文件的打开和关闭流和标准流文件指针。文件的顺序如一些,还有文件的随机读写

2024-07-11 17:33:05 800

原创 动态内存管理

动态内存的分配以及与动态内存有关的几个库函数(malloc,calloc,realloc,free),常见的动态内存的错误以及柔性数组的特点和优势

2024-07-07 16:36:24 713

原创 自定义类型:联合和枚举

联合体类型的声明,联合体的特点以及相同成员的结构体和联合体的对比,联合体大小的计算实用案例,还有联合体的练习,枚举类型的声明,枚举类型的优点以及枚举类型的使用

2024-07-07 15:48:16 832

原创 自定义类型:结构体和位段

结构体类型的声明结构体内层的对其如何?计算结构体的大小结构体的船舱和位段的使用和位段。内存分配以及注意事项

2024-07-05 15:56:36 710

原创 C语⾔内存函数:memcpy、memmove、memset、memcmp的使用和实现。

注意:以下使用的函数,都要包含头文件<string.h>注意:以下使用的函数,都要包含头文件<string.h>一、memcpy使⽤和模拟实现voidmemcpyvoidconst void* source,size_tnum )1、使用:•函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。•这个函数在遇到'\0'的时候并不会停下来。•如果source和destination有任何的重叠,复制的结果都是未定义的。

2024-06-05 09:35:50 578 3

原创 strlen、strcpy、strcat、strcmp、strncpy、strncat、strncmp、strstr几个库函数的使用和实现。

注意:以下使用的函数均需要包含库文件<string.h>注意:以下使用的函数均需要包含库文件<string.h>

2024-06-03 21:02:25 946 2

原创 深入指针3

什么是函数指针呢?通过前面的学习我们不难发现函数指针实际上是一种指针,里面存放的是函数的地址,通过解引用我们可以使用函数,那我们怎么知道函数是不是有地址呢?我们做一个实验。

2024-05-23 13:55:40 553 8

原创 深入指针2

这⾥我们发现&arr[0]和&arr[0]+1相差4个字节,arr和arr+1 相差4个字节,是因为&arr[0] 和 arr 都是 ⾸元素的地址,+1就是跳过⼀个元素。但是&arr 和 &arr+1相差40个字节,这就是因为&arr是数组的地址,+1 操作是跳过整个数组的。如图,我们将一个指针数组,指向三个不同的数组,作为行,然后,将每一个数组作一行。如上所述,访问数组可以用指针的形式进行,当有一个数组arr,且指针指向arr时就有。我们举个例子:整形数组,字符数组,浮点形数组,他们都是数组,因此,

2024-05-21 18:25:03 373 3

原创 深入指针1

我们知道指针变量是储存地址的,长度固定为4/8个字节,那为什么定义指针时还要有不同的类型呢?其实这是为了查找完整的数据,其实指针变量储存的只是第一个字节的地址,那这个数据到底多大?都是不知道的,因此我们需要给指针变量各种不同的类型,举一个生活的例子:你在学生宿舍,你的朋友要找到你,只要他知道你的寝室号就可以很快的找到你,类比与计算机,每一个学生就是一个数据,这些数据存放在内存中(内存类比宿舍),而你可以通过地址来找到这个数据(地址类比寝室号)。概念:野指针就是指向的位置不可知,随机的,不确定的。

2024-05-21 11:08:54 741 3

原创 操作符详解

1.操作符的分类1.操作符的分类•算术操作符:•移位操作符:>•位操作符:& | ^ ~•赋值操作符:+=-=*=/=%==&=|=^=•单⽬操作符:!++--sizeof类型•关系操作符:>=一、算术操作符“+” “-”:和我们小学学的数学一样就是加和减的意思。“*” “/”

2024-04-29 19:58:16 641

原创 利用数组和函数怎么写一个热门扫雷游戏?

首先,我们就要有菜单,可以进入游戏,其次当我们开始玩游戏的时候要打印出棋盘,再者当我们点击一个格子要显示周围有几个雷,最后我们怎么判断游戏是否结束?如图,当我们开始游戏的时候,就显示左边的数据,在计算周围雷的个数就用右边的数组计算,那么当我们点击边缘上一点,该如何计算雷的个数呢?这个问题很简单,只要输入相应的坐标就可以了,例如上图,我们要输入‘1’的绿色格子,只要输入3 6就可以了。要知道因为我们的棋盘是扩大了一圈的,当我们填入雷的时候,为了避免填到外围我们还需要对填入的雷进行判断。1、屏幕上要显示菜单。

2024-04-24 22:51:14 514 3

原创 关于如何判断一个数是否为质数

试除法,6k+-1,艾拉托斯特尼筛法(Sieve of Eratosthenes)

2024-04-21 20:02:57 533

原创 C语言的语言分支和循环语句

同理(3<4||5<3)在该式子中由于前面的(3<4)为真,而前面说了”||“中只要有一个为真即为真,所以此时计算机知道该式子必为真就不再进行后面的判断。(3>4&&5>3)在该式子中由于前面的(3>4)为假,而前面说了”&&“中只要有一个为假即为假,则此时,计算机知道该式子为假就不再进行后面的判断。一个表达式在进行前面的运算时,就已经得出该表达式是否为真,则该表达式将不再进行后面的计算。表达式1)若表达式1为真,则该式子为假,若表达式为假,则该式子为真。当表达式1成立则表达式2计算否者表达式3计算。

2024-04-11 22:16:36 795

空空如也

空空如也

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

TA关注的人

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