自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 相同的数--(力扣)

像这种题目直接把不符合条件的给找出来然后利用if函数对他进行判断即可。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。,编写一个函数来检验这两棵树是否相同。给你两棵二叉树的根节点。

2024-09-15 23:59:28 271

原创 二叉树的实现--(三)

现在我们彻底的完成二叉树的实现就是实现我们剩下的功能:二叉树的销毁、二叉树k层节点的个数、二叉树的程序遍历、判断是否是满二叉树。

2024-09-15 23:54:26 243

原创 二叉树的实现--(二)

现在我们实现二叉树的第二部分:二叉树的结点的查找、前序、中序、后序遍历。

2024-09-14 23:56:02 230

原创 二叉树的实现(一)

构建二叉树需要的是三个因素:1、节点的需要存储的数字2、左节点的地址3、右节点的地址。存储地址都是为了方便直接的找到左右节点。}TreeNode;

2024-09-14 23:53:13 276

原创 单值二叉树--(C语言)

2、如果左边的子树存在并且(root->left)的值与root的值不一样就返回假。4、最后如果左边和右边都没有就返回假如果又一边有就会返回真。3、右边的思路与左边的思路一样。1、如果访问到了叶子要返回真。如果二叉树每个节点都具有相同的值,那么该二叉树就是。只有给定的树是单值二叉树时,才返回。

2024-09-13 23:42:53 283

原创 野指针与空指针的异同

在了解什么是野指针之前我们要知道什么是指针即指针的定义是什么。指针:是一种特殊的变量类型,它存储的是一个内存地址,该地址指向另一个变量的位置。可以通过指针来间接访问和修改该地址所指向的变量的值。PS:请注意指针在进行使用的时候为了防止变成野指针必须要进行初始化。野指针:是指针,但是指向的空间是被释放的空间、被释放的指针和没有初始化的指针就是野指针。

2024-09-13 01:00:00 549

原创 如何判断一个系统的大小端的存储模式

大小端:是指在计算机系统中,多字节数据(如整数、浮点数等)存储顺序的不同而不同的称呼。在计算机内存中,数据是以字节为单位存储的。对于多字节数据,如4字节的整数,存储的时候需要选择一个字节作为起始位置,并按照一定的顺序存储字节。大端:是指高位字节在前、低位字节在后的存储方式。就是整数的高位字节存储在低地址中,低位字节存储在高地址中。类似于大端法的读书方式,从书的开头按照顺序读取每个字节。小端:是指低位字节在前、高位字节在后的存储方式。就是整数的低位字节存储在低地址中,高位字节存储在高地址中。

2024-09-11 23:10:39 1172

原创 链表与数组的本质差别

1、在存储的方式上面数组在内存中是连续的,相邻的可以通过下标的方式进行访问。2、在存储的空间长度上面有区别,数组在创建的时候就固定大小,在使用的时候大多数情况要对数组进行扩容,对于扩容的倍数是根据存储数据的大小不同而不同,但是一般情况下是按照原来的2倍进行扩容。3、在使用的时候我们能通过下标的方式直接访问数组之中的每个数据访问的速度就是O(1)非常的方便。4、在使用数组的插入和删除操作时要对数组的其他元素进行移动,时间的复杂度是O(N)。5、在空间浮渣度上数组的空间复杂度一般比链表的复杂度小。

2024-09-11 01:19:26 196

原创 求二叉树的深度——(力扣c语言)

上题就是要利用递归对目标进行访问找到叶子节点之后记录并返回到根节点之后对左右两个的返回值进行比较对大的返回值进行+1(根本身)即可。是指从根节点到最远叶子节点的最长路径上的节点数。

2024-09-06 22:09:04 277

原创 权限的讲解

1、big.txt:这个就是一个文件的文件名。2、9月 4 10:24 这个就是文件的创建时间或者是文件最近一次的修改时间。3、168894 就是说明这个文件的大小。4、从右到左第一个root是所属组的关系,因为是root创建的文件,默认的所属组就是root。5、从右到左第二个root是所属人的关系,文件是那个用户创建的这个位置的名字就会是那个,因为是root创建所以就是root。6、root之后的1是链接数,就是对于一个文件或者目录而言,能定位到其位置的cd指令的个数。

2024-09-06 03:33:28 669

原创 grep命令、管道符和时间戳

在Linux系统中grep一种常用的文本搜索工具,它用于在文件中查找指定模式的文本行,并将匹配模式的行打印出来。date命令可以让你在Linux上面获取到时间,但是是乱序。date+%Y:显示年份,%m:显示月份,%d:显示月份中的日期,%H:显示小时(24小时制),%M:显示分钟,%S:显示秒用来获取时间。

2024-09-05 14:47:48 672

原创 less、more、head、tail命令解析集合

按下空格键向下翻页,按下q键退出浏览。

2024-09-04 12:08:59 460

原创 echo命令、重定向、zip讲解

echo命令的使用方法:echo “hello Linux”=屏幕上面打印Linux本质上:这个就是从键盘上面输入数据,从屏幕上面输出数据。

2024-09-04 09:40:22 159

原创 二叉树的介绍

结点的度:一个结节点含有的子树的个数被称为该结点的度:B节点的度就为2。叶结点或终端结点:度是0的结点就被称作叶结点;DEFG就是叶结点。父结点:如果某个结点含有的子树的结点那么就称呼这个结点为子节点的父结点;在上图中B结点就是D节点的父结点。子结点:一个结点含有的子树结点被称为是该结点的子结点;D结点就是B结点的子结点兄弟结点:具有相同父结点的两个结点互称为兄弟结点;D结点和E结点就互称为兄弟结点数的度:一颗树中最大的结点的度被称为树的度;上图树的结点就是6。

2024-08-23 19:53:58 314

原创 文件操作2(函数的专栏)

文件使用方式含义如果文件不存在“r”(只读)为了输入数据,打开已经存在的文件文本报错“w”(只写)为了输出数据,打开一个文本文件建立一个新的文件“a”(追加)想文本的尾部添加数据建立一个新的文件“rb”(只写)为了输出数据,打开一个二进制文件报错"wb"(只读)为了输出数据,打开一个二进制文件建立一个新的文件。

2024-08-22 21:51:55 805

原创 对堆的实现

堆可以使用数组来实现,其中数组的下标表示树中的节点,通过运用数组下标来管理数组中父与子的关系,具体的操作有堆的销毁、堆的插入、堆的删除、堆的初始化、读取堆顶的个数、堆的判空等操作。今天我们实现前面的几个操作。插入的数据先初始化再与父的数据相比较如果比父的小就利用数组的下标进行寻找交换。1. 最大堆性质:堆中的最大元素总是位于根节点,且根节点的值大于等于它的子节点的值。2. 最小堆性质:堆中的最小元素总是位于根节点,且根节点的值小于等于它的子节点的值。直接返回最顶的元素即可。直接返回数据的个数即可。

2024-08-18 22:18:54 222

原创 合并两个有序链表--力扣

本代码先是利用变量获取到链表的个数,然后分别利用两个指针分别访问两个链表里面的值然后进行比较把较小的值放到建立的哨兵位后面,然后让tmp(和哨兵位同时创建的指针)指向哨兵位的位置free哨兵位返回tmp即可。新链表是通过拼接给定的两个链表的所有节点组成的。将两个升序链表合并为一个新的。

2024-08-17 21:10:01 281

原创 有效的括号---力扣

给定一个只包括'('')''{''}''['']'的字符串s,判断字符串是否有效。

2024-08-16 19:49:02 275

原创 循环队列C力扣

tip:自己需要什么方便解题就怎么来。

2024-08-15 20:35:24 402

原创 利用队列去实现栈

利用结构体对队列进行管理。

2024-08-14 16:44:37 277

原创 利用栈去实现队列

利用结构体去管理两个栈。

2024-08-13 21:45:58 274

原创 队列的实现

队列是一种先进先出(FIFO)的数据结构,在现实的生活中我们常常使用到队列这一结构,比如需要按照先后顺序处理数据的场景,比如任务调度、消息传递等。

2024-08-10 12:39:48 280

原创 利用顺序表对栈的实现

学习过函数栈帧的朋友们都知道栈是一个能存放数据的地方今天我们就来开始栈的实践。

2024-08-09 18:11:47 182

原创 带头双向循环链表(二)

定义一个指针指向哨兵位的下一个节点然后利用while指针一个一个的去寻找目标找到就返回该节点,反之就返回NULL。通过pos找到pos位置的前面一个节点然后把新创建的节点与前面的节点连接起来。使用两个指针分别指向pos位置的前面和pos位置的后面然后直接连接前后两个位置最后free(pos)即可。利用一个指针存下一个节点,另一个指针访问每个节点并对节点的空间free即可。利用malloc函数直接进行扩容操作,然后对剩下的结构体部分进行赋值即可。利用指针指向头结点的下一位然后对每个节点的val进行打印即可。

2024-08-08 11:58:03 132

原创 带头双向循环链表(一)

今天我们来学习带头双向链表。

2024-08-07 22:34:04 279

原创 链表的回文结构

1、寻找到到链表的中点,然后利用指针去改变里面存储的地址最后利用在最后的指针和一个在最前面的指针相比较就行了。对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。输入:1->2->2->1。给定一个链表的头指针。

2024-08-05 09:55:12 219

原创 环形链表二

指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。1、输入的链表是否是环形的链表有就返回开始循环的起始点,没有就返回NULL。如果链表中有某个节点,可以通过连续跟踪。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。,返回链表开始入环的第一个节点。来表示链表尾连接到链表中的位置(,仅仅是为了标识链表的实际情况。如果链表无环,则返回。,则在该链表中没有环。

2024-08-04 18:54:06 278

原创 函数栈帧的创建和销毁

函数栈帧(Function stack frame),也称为活动记录(Activation record)或调用栈帧(Call stack frame),是在程序执行过程中用来管理函数调用的一种数据结构。每当一个函数被调用时,都会创建一个对应的函数栈帧。函数栈帧主要包含的内容返回地址(Return Address):指示函数执行完毕后程序需要回到的下一条指令的地址。基址指针(Base Pointer):指向当前函数栈帧的起始位置,在函数内部可以通过基址指针来访问局部变量和函数参数。

2024-07-30 20:14:31 1112

原创 合并两个有序数组(力扣---C语言)

注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。利用下标的方法访问数组中的元素,再利用while函数对数组中的每个元素进行比较较大的元素放入数组一的最后,从后往前来进行排列。,5,6] ,其中斜体加粗标注的为 nums1 中的元素。需要合并 [1,2,3] 和 [2,5,6]。需要合并的数组是 [] 和 [1]。个元素表示应合并的元素,后。需要合并 [1] 和 []。中,使合并后的数组同样按。

2024-07-29 20:53:54 270

原创 合并两个有序链表

利用两个指针遍历两个链表,得到两个链表里面的元素个数,如果两个链表的个数是0就任意返回其中一个链表,不是0就利用while函数对两个链表里面的元素进行比大小,是小的就把这个元素放到新创建的链表中去最后返回这个链表就行了。新链表是通过拼接给定的两个链表的所有节点组成的。将两个升序链表合并为一个新的。

2024-07-29 20:30:17 127

原创 环形链表一(力扣---C)

题目描述如下:给你一个链表的头节点head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos不作为参数进行传递。仅仅是为了标识链表的实际情况。如果链表中存在环,则返回true。 否则,返回false。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:

2024-07-28 21:09:37 212

原创 链表的学习(三)---(前置删,后置删,前置插,后置插,销毁)

接下来把我们没有写完的5个功能前置删除,后置删除,前置插入,后置插入,节点销毁一起写一下。

2024-07-26 11:04:38 244

原创 链表的学习(二)---(头插、尾删、头删、查找)

根据上一篇实现的功能我们这一篇就实现链表的头插、尾删、头删、查找等功能。

2024-07-25 19:29:32 218

原创 不带哨兵位的单向链表的实现--C语言

链表的定义:链表是一种常见的数据结构,由一系列节点构成,每个节点包含数据和指向下一个节点的指针。在物理结构上顺序表相比链表来说是由一连串的不紧密相连的数据构成,但是在我们的实现中利用好指针的特点把在物理上不相连的链表在我们的脑海中相连起来。链表的打印,节点的创建,链表的尾插,链表的头插,链表的尾删,链表的头删,链表的查找,链表位置的前置插入和后置插入,任意位置的链表删除等接口需要实现。

2024-07-24 10:58:21 262

原创 删除有序数组中的重复项(力扣---c语言)

思路解析:利用两个从头开始一前一后的变量去定位数组中的元素,再对元素的内容进行判断如果相等靠前的变量++,如果变量不相等靠后的变量++,之后再利用靠前的变量向靠后的变量进行赋值,之后利用靠前的变量遍历一遍数组,最后返回靠后的变量加1这题就解决了。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。函数应该返回新的长度。函数应该返回新的长度。

2024-07-18 09:17:35 284

原创 顺序表的实现(三)

上期还剩下函数的头删,函数的尾删,函数的随时插入,函数的随时删除,函数的查找等五个接口没有实现接下来我们就看时实现。

2024-07-16 19:31:35 196

原创 顺序表的实现(二)

函数的打印、函数的扩容、函数的头插、函数的尾插、函数的头删、函数的尾删、函数的插入、函数的定点删除、函数的查找。

2024-07-16 17:01:54 288

原创 顺序表的初始化和销毁(一)

元素顺序有序:顺序表中的元素的顺序是有序的,每个元素都有一个唯一的位置。顺序表可以通过索引定位数据元素的位置,从而快速查找和访问数据。元素类型任意:顺序表中的数据元素类型可以是任意类型,如整数、字符、结构体等。通过顺序表的排序操作,可以将数据按照一定的规则进行排列,使得数据更易于使用和查找。存储空间连续:顺序表使用一段连续的内存空间来存储数据元素,这种连续的存储方式使得顺序表的访问效率高。在测试的文件上面编写初始化的函数,把定义的结构体给它初始化一下把所有的数据重置。删除:删除指定位置的元素。

2024-07-15 11:37:09 434

原创 移除目标元素(力扣--用C解)

你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。把 数组中的不等于 val 的数,依次填在数组的下标上。利用for循环对数组进行遍译并找到与val不相等的值,你的函数函数应该返回 k = 2, 并且 nums。重新对数组进行重构最后返回初始化的int变量就行。初始化一个int类型的变量用来指向数组的下标,中的前两个元素均为 2。

2024-07-13 19:24:42 306

原创 预处理详解

在我们的编译器上面有一些内置的符号编译出来的结果就是#define的机制包括了一个规定,允许把参数替换到文本中,这种实现通常称位宏或定义宏。使用表现:其中的parament-list是一个由逗号隔开的符号表,它们可能出现在stuff中。参数列表的左括号必须要与name紧邻。如果两者之间有任何空白的存在,参数列表就会被稀释为stuff的一部分。#if defined(symbol) //等于 #ifdef symbol#if!

2024-07-06 20:02:24 231

空空如也

空空如也

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

TA关注的人

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