自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++类与对象(一)

如以下代码class为定义类的关键字Stack是类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中的内容称为类的成员类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。public://成员函数Top = 0;return;arr = tmp;Top++;arr = NULL;Top = 0;int Top;return 0;

2024-07-21 23:54:49 968 7

原创 C++基础入门(二)(函数重载,引用,内联函数,nullptr)

引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名,编译器不会为引⽤变量开辟内存空间,它和它引⽤的变量共⽤同⼀块内存空间。就像人会有小名一样,例如张三,他的家人可能平时叫他小三,虽然称呼不同,但都是叫的张三这一个人类型& 引用别名 = 引用对象C++中为了避免引入太多运算符,会复用C语言的一些符号,比如前面的,这里引用和取地址使用了同一个符号,注意使用方法区分即可。//bb和cc是aa的别名。

2024-07-20 22:59:02 837 11

原创 C++基础入门(一)(命名空间,输入输出,缺省参数)

定义命名空间需要用到namespace的关键字,后面跟命名空间的名字,然后接一对 { }即可。{} 中即为命名空间的成员。命名空间中可以定义 变量、函数类型等如下代码所示int n = 11;int s = 3;int a = 2;namespace的本质是定义一个域,这个域跟全局域各自独立,不同的域可定义同名变量namespace只能定义在全局,还可以嵌套定义。项目工程中多文件定义的同名namespace会认为是一个namespace,不会造成冲突。可以。

2024-07-20 22:57:57 782 11

原创 计数,桶与基数排序

要进行 i(最高位的位数) 趟排序 , 每趟排序需要将元素分派到k个桶,所以每趟排序的时间复杂度为O(n+k) 走i趟时间复杂度就为O(i(n+k)) 但桶的个数通常是固定的,执行的躺数一般又较小,所以基数排序的。如果待排序的元素数量很大,这可能会占用较多的内存空间。再次遍历待排序数组,对于数组中的每个元素,将其值减去最小值(为了使得计数数组的下标从0开始),并将计数数组中对应下标的值加1。如果待排序数组中的元素是负数,或者元素的取值范围较大,计数排序可能不适用,因为它需要额外的空间来存储计数数组。

2024-07-19 14:23:56 810 9

原创 快速排序及归并排序的实现与排序的稳定性

代码如下。

2024-07-17 19:07:18 1173 16

原创 冒泡,选择,插入,希尔排序

假设排升序,第一个数自然是有序的,第二个数与第一个数比较,如果比第一个数小就与其交换,然后看第三个数,此时前两个数是有序的,第三个数先于第二个数比较,比第二个数小就与其交换,再与第一个数比较,比第一个数小就与其交换,如果不比第二个数小就看第四个数,此时前三个数都是有序的以此类推。直接插入排序是和距离为1的元素比较,而希尔排序是和距离为gap的元素比较,gap不断变小,直到变为1,此时即是直接插入排序。当数据全都有序时,最快。从时间上讲,gap越大,大的数可以越快的到后面去,小的数可以越快的到前面去。

2024-07-16 14:06:00 1169 3

原创 二叉树的基本操作及层序遍历(附加一道OJ题)

由于之前讲过二叉树的性质,概念等。这里就不赘述了。

2024-07-14 15:40:52 753 10

原创 堆及堆排序的实现

int size;}HP;void Swap(HeapType* a, HeapType* b)//需要交换函数*a = *b;*b = tmp;

2024-07-12 23:03:46 696 12

原创 树的概念与二叉树的实现

二叉树每个节点最多有两个子节点,被称为左子树和右子树。所有的二叉树都分为三部分:根,左子树,右子树2. 特殊二叉树(1) 满二叉树一个二叉树,每层的节点数都达到最大值,如果有k层,节点树为2的k次方-1就是满二叉树,如下图所示即为满二叉树(2)完全二叉树:树的高度是h前h-1层都是满的,最后一层不满,在最后一层从左往右都是连续的(满二叉树是特殊的完全二叉树,缺0个节点)如下图所示即为完全二叉树。

2024-07-12 21:52:22 1064 14

原创 队列的实现

int size;}Queue;我们需要一个头指针和一个尾指针,如果将其整合为一个结构体会方便的多,并且免去了使用二级指针来改变头指针和尾指针,记录元素个数也方便许多。

2024-07-08 21:22:57 531 3

原创 栈的实现详解

/StackType是存储元素的类型int Top;}ST,*pS;a:指针,用来存储数据Top:栈顶元素在a中的位置capacity:a能容纳的元素个数。

2024-07-08 13:20:28 382 12

原创 贪吃蛇小游戏的实现代码

我好水............

2024-07-04 17:09:37 257 1

原创 双向带头链表实现

由于上一篇已经对链表的基本概念讲解完毕,这里就不过多赘述了。

2024-05-28 16:52:57 375 25

原创 单向无头链表实现

int data;}SListNode;data 用来存储数据next用来存储下一个节点的地址。

2024-05-23 20:16:53 368 6

原创 动态顺序表实现

需要三个参数1. a:指向动态内存开辟的空间2. size:数组中的有效数据3. capacity:存储的容量可动态增加//////静态顺序表//{//表示数组中存储了多少个有效数据////}Seqlist;//动态顺序表//指向存储数组的空间int size;//表示数组中存储了多少个有效数据//容量}SL;

2024-05-15 22:31:03 428 14

原创 预处理详解

C语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。__FILE__ //进行编译的源文件__DATE__ //文件当前的行号__TIME__ //文件被编译的日期__LINE__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则为未定义以下代码用来验证int main()//进行编译的源文件//文件当前的行号//文件被编译的日期//文件被编译的时间return 0;执行结果如下。

2024-05-07 15:02:23 1647 12

原创 了解程序的编译与链接

其实翻译环境是由编译和连接两个大的过程组成的,而编译又可以分解成:预处理(有些书也叫预编译)、编译、汇编三个过程。程序同时也可以使用静态(static)内存,存储于静态内存中的变量在程序的整个执行过程中一直保留他们的值。在独立的环境中,程序的载入必须由手工安排,也可能是通过可执行代码置入只读内存来完成。3. 处理#include 预编译指令,将包含的头文件的内容插到该预编译指令的位置。这个过程是递归进行的,也就是说被包含的头文件也可能包含其他文件。它提供了一个执行C语言程序的平台,并负责管理程序的运行。

2024-04-29 16:30:11 774 7

原创 C语言文件操作详解

磁盘(硬盘)上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件从文件功能的角度来分类的)。函数名功能适用于fgetc字符输入函数所有输入流fputc字符输出函数所有输出流fgets文本行输入函数所有输入流fputs文本行输出函数所有输出流fscanf格式化输入函数所有输入流fprintf格式化输出函数所有输出流fread二进制输入文件输入流fwrite二进制输出文件输出流。

2024-04-28 15:20:20 846 2

原创 动态内存管理详解

取决于编译器。

2024-04-24 17:34:30 563 3

原创 结构体与位段

/struct:结构体关键字, Node:结构体标签//int char 等为结构体成员名,后跟结构体成员类型int age;char name;结构体末尾的分号;必须要加int age;char name;}Nd,*de;//Nd为结构体变量名,*de则为结构体指针Nd与de都是全局的结构体的成员变量可以是标量,数组,指针甚至是其他结构体2.结构体的嵌套位段的成员必须是int unsigned int 或者signed int 或者是char类型位段的。

2024-04-23 18:45:19 808

原创 C语言指针入门(二)

int n = 3;int m = 1;//*p1 = 4;错误p1 = &m;//p2 = &m;错误*p2 = 4;//*p1 = 4;错误//p2 = &m;错误由上可得1.const放在*左边,指针变量指向的对象的值不可以通过指针对象来改变,但指针变量本身的值可以改变2.const放在*右边,指针变量的值不可以改变,但是指针变量指向对象的值可以通过指针对象解引用赋值改变3. *左右两边都有就全不可以改变。

2024-04-01 23:58:01 1777 6

原创 C语言指针入门(一)

内存会划分为一个个内存单元(一个内存单元大小为1字节)每个内存单元都有一个编号即地址也被称为指针,我们可以理解为指针就是地址。通过指针可以找到其所指向的内存单元。就像我们第一次去一个朋友家时可以通过门牌号找到她的家一样,指针就是所存储数据的“门牌号”但不同的地方是在C语言中不同类型的数据在内存中所占用的字节数和存储方式是不一样的,所以我们在存取数据时不仅要知道位置信息还要知道该数据的类型信息,下文会提到类型名 * 指针变量名;//int 说明指向的对象类型为int。

2024-03-30 22:29:28 1621 5

原创 C语言扫雷代码及思路

1.标记雷,再次标记可以取消标记2.随机布雷3.如果扫雷的地方没雷就递归展开一片。

2023-12-10 16:27:59 856 6

原创 随机数函数的简单应用

1.srand()函数可以理解为用来设置“随机数”的值2.rand()函数会根据srand()括号里的值返回一个数要使用以上函数必须包含#include<stdlib.h>这个头文件3.time()函数获取当前系统时间返回一个time_t类型的值(需要引用头文件#include<time.h>)

2023-12-10 13:17:04 511 1

空空如也

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

TA关注的人

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