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

原创 01.C++入门基础(上)

•定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。•namespace本质是定义出一个域,这个域跟全局域各自独⽴,不同的域可以定义同名变量,所以下面的rand不在冲突了。•C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/函数/类型出处(声明或定义)的逻辑,所以有了域隔离,名字冲突就解决了。

2024-07-18 23:32:25 856 2

原创 数据结构:排序

1.直接选择排序思考非常好理解,但是效率不是很好。实际中很少使用2.时间复杂度:O(N^2)3.空间复杂度:O(1)4.稳定性:不稳定代码实现:我们先来实现单趟排序,我们定义一个变量begin和一个变量mini(其中mini是最小数字的下标,begin是依次排序时的下标)先遍历一遍找到最小的,将其下标赋值给mini,循环结束后,将下标为begin和mini的两个数字交换,然后begin++接下来找第二小的,重复以上步骤。

2024-07-08 15:40:14 944 4

原创 数据结构之二叉树

之前我们了解了树的性质,并简单介绍了一下二叉树,那么接下来我们就来更多地来学习一下二叉树。在学习二叉树之前我们先来学习一下二叉树的遍历,但是遍历需要先创建一个二叉树,那么为了方便理解和学习,我们先来暴力创建一个二叉树,介绍完二叉树的遍历之后,我们就可以使用二叉树的遍历来创建二叉树。当然我们要先一个二叉树结构,如下图:我们先来暴力创建一颗二叉树,就以下图所示创建:由于这里我们使用数字来创建,所以不要忘记先将char修改为int。其实简单点就是:前序:根 左子树 右子树中序:左子树 根 右子树后序:左子树 右子

2024-06-12 21:50:32 1418 2

原创 堆排序和TOP-K问题

堆排序即利用堆的思想来进行排序,总共分为两个步骤:1.升序:建大堆降序:建小堆2.建堆和堆删除中都用到了向下调整,因此掌握了向下调整,就可以完成堆排序。这里第1步可能大家会产生疑问,为什么升序建大堆,降序建小堆?不能升序建小堆,降序建大堆吗?我们就以降序建大堆为例,来讲解一下:就以下面图片的大堆为例这里我们要降序,直接取堆顶最大值,但是要怎么取第二个大的呢?这时候就要将堆顶以下的数据重新建成大堆,再取堆顶但是,这样的话关系就全乱了,8和7刚还是兄弟,现在变成父子了,而且还会增加时间复杂度。

2024-05-28 20:52:20 290 2

原创 数据结构:二叉树和特殊的二叉树——堆

的。

2024-05-23 22:54:06 994 1

原创 数据结构:栈和队列

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。栈中的数据元素遵守后进先出LIFOLast In First Out)原则。压栈:栈的插入操作叫做进栈压栈入栈,。出栈:栈的删除操作叫做出栈。。后进先出:就像一个只有一端开口的容器,最后进入栈的元素最先被弹出。

2024-05-15 22:03:39 656 2

原创 C语言实现简易版贪吃蛇

我们封装一个WelcomeToGame函数来实现,在打印之前得要定位光标(在合适的地方打印出来看着会协调),所以我们再封装一个SetPos函数来定位光标。

2024-05-10 22:19:18 937 2

原创 数据结构:双链表的实现

在List.h文件中,首先创建一个结构体用来存放节点的信息,这里和单链表的区别是我们额外增加了一个结构体指针成员prev用来指向上一个节点的指针。接下来我们来实现双链表的增删查改操作。

2024-04-20 22:43:20 605 3

原创 数据结构:单链表的实现

为什么需要指针变量来保存下一个节点的位置?链表中每个节点都是独立申请的(即需要插入数据时才去申请一块节点的空间),我们需要通过指针变量来保存下一个节点位置才能从当前节点找到下一个节点。这样就不会造成空间浪费了。

2024-04-14 21:42:22 1201 1

原创 顺序表实现通讯录项目

分别是void* ptr ,ptr是指向要接收数据的缓存区的指针,我们这里要接收的是从pf中读取的数据,所以我们要&info取出info的地址存放在ptr中接收pf中的地址(获取其中的数据);size_t size则是每次读取的字节数,我们这里读取存放数据的结构体的大小;size_t count是读取的元素个数,我们这里读取一个结构体;两者的区别是前者fread是从FILE* stream中读取数据到void* ptr中,而fwrite则是将void* ptr中的数据写入到FILE* stream中。

2024-04-07 22:08:02 788 4

原创 实现顺序表的增删查改

所以。这里我们就来使用动态顺序表来实现增删查改等操作首先我们创建一个SeqList.h的头文件和一个SeqList.c的源文件。我们在头文件中进行对函数的声明,首先我们定义一个自定义类型的结构体,这个结构体就是动态顺序表,结构体成员分别为SLDataType* arr,int size, int capacity。注意我们这里对int进行重定义为SLDateType,我们对顺序表操作数据时不一定就是整型,也可以其他内置类型如字符型,如果我们将它写死为int* arr,那么后续要修改时就非常繁琐,而对Int进

2024-04-03 21:37:58 1010 6

原创 关于文件操作(一)

磁盘(硬盘)上的文件是文件。例如我们电脑上的C盘内的文件夹等程序文件、数据文件(从文件功能的角度来分类 的)。2.1程序文件程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows 环境后缀为.exe)。

2024-03-28 20:39:35 407

原创 自定义类型:结构体

位段的声明和结构是类似的,有两个不同:1. 位段的成员必须是 int、unsigned int 或signed int ,在C99中位段成员的类型也可以 选择其他类型。2. 位段的成员名后边有⼀个冒号和⼀个数字。

2024-03-24 20:50:13 732

原创 数据在内存中的存储

整数的2进制表示方法有三种,即 原码、反码和补码 三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位最高位的一位是被当做符号位,剩余的都是数值位。:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。:将原码的符号位不变,其他位依次按位取反就可以得到反码。:反码+1就得到补码。为什么呢?在计算机系统中,数值⼀律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统⼀处理;

2024-03-24 16:22:06 976

原创 字符串函数和内存函数的模拟实现

我们要将arr1,数组名就是首元素地址,从前向后拷贝20个字节也就是5个整型元素,拷贝到arr1+2,首元素地址向后移动两个整型,也就是指向3的地址,从3开始被拷贝20个字节。arr1的地址传给src,arr1+2的地址传给dest,此时dest大于src,如果我们从前向后拷贝,当1拷到3时,3的位置就变成了1,2拷到4,4的位置就变成了2,3拷到5时,由于3的位置已经变成了1,所以3拷不到5的位置,5的位置只会被拷成1,也就是说我们要拷贝的内存会被覆盖,此时我们应该如何避免呢?

2024-03-15 23:53:58 806 2

原创 标题:机器人工程专业学生的编程学习之路

总之,作为一名机器人工程专业的学生,我将全力以赴学习编程,提高自己的技能,为未来的职业发展做好充分准备。我对机器人工程充满了兴趣,这个专业让我有机会将理论知识与实际应用相结合,创造出能够改变世界的创新技术。关于我最想进入的 IT 公司,我希望有机会能加入一家具有创新精神和技术实力的公司。我希望在这样的公司中,我能够与优秀的团队一起合作,参与到具有挑战性的项目中,不断提升自己的技术水平和综合素质。大家好,我是一名机器人工程专业的学生。今天,我想在这里分享一下我学习编程的目标、计划以及我对未来职业的规划。

2024-01-16 23:03:09 335

空空如也

空空如也

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

TA关注的人

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