自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux权限

你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash。命令可以将自己的指令提权到root进行执行,而且是输入自己的密码,但是要自己在root的白名单中,这里我们在学会用vim后在进行更改。​ b.特殊情况下,配置umask,可以控制文件的默认权限,让我们的代码都是可控的。我们创建的目录都会有对应的权限,那么这些权限是如何进行创建的呢,如何修改呢。

2024-09-28 19:29:05 852

原创 Linux基本指令(2)

而我们学过的文件操作中,每次都需要先打开文件,所以键盘显示器这些文件就在启动程序时打开了这些文件。我们也可以通过输出从定向来实现从一个终端向另一个终端中打印内容。带上后就可以递归将文件和子目录一起处理,否则就只会打包空文件。能将文件从Linux系统中传到Windows系统中。能将文件从Windows系统中传到Linux中。我们输入相对应的计算方法就可以得到相对应的结果。将后续的内容直接当成字符串进行打印。将文件内容反向打出到显示器上。在系统中查找相关的文件,压缩包。将文件的内容打印到显示器上。

2024-09-25 10:41:25 839

原创 Linux基本指令(1)

Linux操作系统一般都是指令来操作的,我们初步了解LInux就应该去学习一些简单的Linux指令这个指令一般用来连接我们Linux服务器的一个指令。

2024-09-23 13:40:24 619

原创 C++函数重载完成日期类相关计算

本文内容如下:1.创建类以及函数的声明2.日期加减天数1.月份天数2.函数实现3.日期比较大小4.日期减日期1.日期的前置和后置加加2.日期减日期的实现5.内置类型的cout和cin本文代码如下:要完成日期类的相关计算要创建自定义的类型,然后用函数重载来完成

2024-09-21 09:39:40 674

原创 C++初级学习:⼊⻔基础

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

2024-07-26 16:17:39 633

原创 C语言数据结构:堆排序及TOP-K问题

本文内容如下:1.堆排序的直接应用2.堆排序的进阶使用2.1用向上调整来建堆2.2建队后的排序方法一:取根节点重新建堆方法二:建反堆2.3用向下调整来建堆3.建堆的时间复杂度的计算4.TOP-K问题1.堆排序的直接应用之前我们在建堆时将删除写的是从头部数据的删除如果我们将头部节点取下来在不断删除头节点就可以进行排序了写成代码:

2024-07-21 00:20:59 785

原创 C语言数据结构:二叉树堆的实现

双亲结点或父结点:若一个结点含有子结点,则这个结点称为其子结点的父结点;孩子结点或子结点:一个结点含有的子树的根结点称为该结点的子结点;如上图:B是A的孩子结点。叶结点或终端结点:度为0的结点称为叶结点;子孙:以某结点为根的子树中任一结点都称为该结点的子孙。非终端结点或分支结点:度不为0的结点;兄弟结点:具有相同父结点的结点互称为兄弟结点;结点的祖先:从根到该结点所经分支上的所有结点;结点的层次:从根开始定义起,根为第1层,根的子结点为第2层,以此类推;结点的度:一个结点含有的子树的个数称为该结点的度;

2024-07-19 18:08:31 729

原创 C语言数据结构:队列的实现

这里删除要注意:如果队列中只有一个节点时,如果将一个删除那么ptail就为野指针,所以要分类。使用结构体将指针存入,进行结构体修改,既避免了传多个参数,又避免使用了二级指针。与栈相反,队列只能从对头进入,从队尾出,导致进队数据和出队数据是一致的。我们在取号时用的较多,让数据从队尾进入,从头取出数据。所以数组就很难实现,单链表能够实现的双向链表都能实现。这里由于后面要计数,所以对结构体进行加一个size。而对于队列来说,单链表加两个指针就可以实现。我们采用单链表的方式去实现队列。先创建队列(单链表)

2024-07-16 17:16:13 243

原创 C语言数据结构:栈的实现

本文内容:1.栈的基本概念2.栈的实现2.1栈的定义2.函数的声明和实现2.1栈的创建和销毁2.2入栈和出栈2.3取栈顶数据2.4判空2.5.栈的数据个数1.栈的基本概念栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。

2024-07-16 16:33:18 274

原创 C语言数据结构:链表相关题目补充2

本篇文章涉及到前面文章的相关内容:C语言简单的数据结构:单链表的有关算法题(1)C语言简单的数据结构:单链表的有关算法题(2)C语言数据结构:链表相关题目补充1本文内容如下:1.[环形链表1](https://leetcode.cn/problems/linked-list-cycle/description/)2.[环形链表2](https://leetcode.cn/problems/linked-list-cycle-ii/description/)解法一:数学思维解法二:改为链表相

2024-07-14 15:43:06 897

原创 C语言数据结构:链表相关题目补充1

这道题的解法有很多,可以通过先遍历一遍来获取链表长度,然后通过将倒数k个节点转换为正数k个节点来达到目的。由于我们并没有对前半部分的链表进行修改,所以2后面仍然指向原有的位置。那么要想比较数字,就只能将后半部分的链表进行反转,在从前向后遍历。那么问题就是找到链表的中间节点,和进行链表的反转两个问题了。用两个链表的长度相减 就是长的链表指针应当先走的距离。奇数个时2指向的数和逆置后的来链表2的数是一样的。这个问题我们可以通过两个相同的指针同时走来判断。那么后走的就是我们要找的节点。

2024-07-14 11:07:56 929

原创 C语言数据结构:时间复杂度2和空间复杂度

通过计算分析发现基本操作调用了N+1次,那么时间复杂度为O(N)那如果将其中间加入一个循环呢?随着N的慢慢变小,我们可以算出这个循环在这个递归中的时间复杂度是O(N^2)那么总体的时间复杂度也是O(N^2)通过画图我们可以算出他的调用次数:F(N) = 2^(N-1)-1 ==> O(2 ^N)我们也就知道这个算法并不是很好,因为一旦次数变多,那么消耗的时间也就会多很多。

2024-07-13 17:54:41 261

原创 C语言数据结构:时间复杂度1

时间复杂度的定义:在计算机科学中,,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。但是我们需要每个算法都上机测试吗?是可以都上机测试,但是这很麻烦,所以才有了时间复杂度这个分析方式。一个算法所花费的时间与其中语句的执行次数成正比例,。简单点来说,时间复杂度其实是程序的运算次数,那我们来看看下面这些程序的时间复杂度。

2024-07-12 20:26:16 1008

原创 C语言补充:指针的基础理解

这里我们不难发现对于指针的改变其实是取决于对应的指针类型的,32位环境下char就是一个字节,而int为4个字节知道了这一点之后我们就可以对指针+/-数实际上就是跳过对应的字节这就是指针加上数字,那么指针-指针有什么意义吗其实可以类比成日期-日期就能算到中间差几天,那么指针就是中间差的元素数例如:用char*类型计算字符中间的差值。

2024-07-11 20:19:56 478

原创 C语言实现贪吃蛇项目(2)

前缀“L”在单引号前⾯,表⽰宽字符,对应wprintf() 的占位符为 %lc;到这里C语言的语法部分就差不多了,后续我会继续写C语言数据结构的文章了,C语言语法部分看看可能会补充一部分,还是看看时间吧,大家加油!好了本篇文章就结束了,希望大家可以动手自己去写一下,还是会有一些收获的。用头插法将食物节点插入,释放下一个位置的节点,打印蛇,最后创建食物。先创建节点,然后将移动的下一个坐标写出来,要注意x一次加2。我们的移动采用的方法是:将未接点释放,头节点进行头插。

2024-04-20 21:36:19 1570 2

原创 C语言实现贪吃蛇项目(1)

概念: Windows这个多作业系统除了协调应⽤程序的执⾏、分配内存、管理资源之外,它同时也是⼀个很⼤的服务中⼼,调⽤这个服务中⼼的各种服务(每⼀种服务就是⼀个函数),可以帮应⽤程序达到开启视窗、描绘图形、使⽤周边设备等⽬的,由于这些函数服务的对象是应⽤程序(Application),所以便称之为ApplicationProgrammingInterface,简称API函数。WIN32API也就是MicrosoftWindows32位平台的应⽤程序编程接⼝。

2024-04-19 21:27:40 788 1

原创 C语言简单的数据结构:双向链表的实现

目录:1.双向链表的结构和初始化1.1双向链表的结构1.2双向链表的初始化2.双向链表的相关操作2.1双向链表的尾插、打印和头插2.11双向链表的尾插2.12双向链表的打印2.13双向链表的头插2.2双向链表的尾删和头删2.21双向链表的尾删2.22双向链表的头删2.3双向链表查找和任意位置插入、删除2.31双向链表查找2.32双向链表任意位置之后插入2.33双向链表任意位置删除2.4双向链表的销毁

2024-04-14 19:18:53 1202 1

原创 C语言简单的数据结构:单链表的有关算法题(2)

接着我们介绍后面的三道题,虽然代码变多了但我们的思路更加通顺了。题目:4. 单链表相关经典算法OJ题3:合并两个有序链表5. 循环链表经典应⽤-环形链表的约瑟夫问题6. 单链表相关经典算法OJ题5:分割链表

2024-04-12 11:25:08 1055 2

原创 C语言简单的数据结构:单链表的有关算法题(1)

算法题重点在于思路,代码其实并不难,这里的每一题都提供多种思路,大家可以动手写一下,并找到更好的解题方法这里先介绍三道简单的题题目:1.单链表相关经典算法OJ题1:移除链表元素2.单链表相关经典算法OJ题2:反转链表3. 单链表相关经典算法OJ题4:链表的中间结点

2024-04-11 11:28:00 1120 1

原创 C语言简单的数据结构:单链表

我们在使用顺序表的时候我们发现了一些问题:1.涉及到中间插入和头插时会进行数据的移动,导致效率较低2.增容的空间会进行数据的拷贝3.每次申请的空间不一定被使用,导致空间浪费以上都说明顺序表不是很完美的,那有什么解决方法呢?没错那就是:链表概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。所以链表也是线性表的一种(物理结构上不一定时线性的,逻辑结构是连续的)

2024-04-10 11:47:35 1514 3

原创 C语言顺序表的应用:基于动态顺序表实现通讯录

本文内容如下:1.功能要求2.功能分析3.功能的实现3.1通讯录的命名和修改前置代码3.2通讯录中个人信息的有关操作3.2.1通讯录的初始化和销毁3.2.2通讯录的增加、删除和展示信息3.2.2.1通讯录的增加信息3.2.2.2通讯录的删除信息、展示信息3.2.3通讯录的修改和查找3.2.3.1通讯录的修改3.2.3.2通讯录的查找3.3通讯录界面设置本文代码:1.功能要求1)⾄少能够存储100个⼈的通讯信息2)能够保存用户信息:名字、性别、年龄、电话、地址等3)增加联系

2024-04-05 13:40:07 805 2

原创 C语言简单的数据结构:顺序表

定义顺序表的结构有两种方法分别是静态顺序表和动态顺序表静态的顺序表有两个数据分别是:一个定长数组和一个数组的有效数据的个数动态顺序表则比静态顺序表多了一个数据来记录数组空间的大小这里使用typedef是我们的代码方便后续编写与修改进行的定义,标黄的部分表示两种方法任选其一即可。

2024-04-04 17:35:14 813 1

原创 C语言动态内存管理

首先我们要了解内存存储的方式我们今天的所有的操作都是对于堆区进行操作的,而对内存进行操作的函数都在头文件下。

2024-04-02 16:31:17 504 1

原创 C语言内存函数(memcpy、memmove、函数的使用和模拟实现和memset、memcmp函数的使用)

本文包括以下几个部分:一、memcpy、memmove函数的使用和模拟实现二.memset、memcmp函数的使用

2024-03-25 09:29:57 413

原创 C语言字符、字符串函数(strlen、strcpy、strcat、strcmp、strstr的使用及模拟实现和strncpy、strncat、strnmap、strtok、strerror的使用)

本文包括以下几部分内容:一.strlen、strcpy、strcat、strcmp函数的使用和模拟实现二.strncpy、strncat、strnmp函数的使用三.strstr函数的使用和模拟实现四.strtok、strerror、perro函数的使用函数的模拟实现可以帮助可以帮助我们更加深刻的理解函数,方便我们去使用今天来介绍有关于字符的相关函数,希望对大家有所帮助。

2024-03-17 16:09:05 1003 1

原创 C语言思维导图分享(1)

​这些都是我学习C语言做的一些思维导图,现在分享给大家(可能有一些错误,大家可以提出来),思维导图都可以通过归寻 (gui-xun) - Gitee.com这个网址直接下载。

2024-03-13 23:40:22 190

原创 C语言冒泡排序、qsort函数和模拟实现

本篇文章主要包括以下几个部分:一、冒泡排序的实现和优化二、.qsort函数的使用三、qsort函数的模拟实现一、冒泡排序的实现和优化排序的方法有很多种,冒泡排序是其中较为简单的一种,下面介绍一下1.冒泡排序的操作原理是通过两个数两两比较,将大的数放在后面,小的数放在前面来排序的,将第一次的两个数放置好再选下两个数

2024-03-11 21:02:15 917 2

原创 C语言数组与函数的综合练习——扫雷游戏

1.游戏是一个有n×n的正方形2.每次点击会以自身为九宫格显示周围区域所有雷的个数3.当玩家扫到所有雷时游戏胜利踩到雷则游戏失败今天我们来制作的就是一个9×9的扫雷游戏,但是不要将所有的数据定义死,方便后续修改游戏。

2024-02-03 21:17:33 442 1

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

在计算机程序设计中,分支循环语句是控制程序流程的重要手段。它们允许程序根据特定条件执行不同的代码块,或者重复执行某段代码。在C语言中,主要有两种分支循环语句:if-else 和 switch-case,以及两种循环语句:for 和 while。

2024-01-27 11:31:26 369 1

空空如也

空空如也

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

TA关注的人

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