自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 求根节点到叶节点数字之和

求根节点到叶子节点数字之和

2024-05-22 15:37:13 265

原创 计算布尔⼆叉树的值

计算布尔⼆叉树的值(递归解法)

2024-05-22 15:36:29 164

原创 Pow(x, n)- 快速幂(递归版)

快速幂的递归版本

2024-05-21 15:40:00 181

原创 两两交换链表中的节点(递归)

两两交换链表中的节点(递归版)

2024-05-21 15:39:36 164

原创 反转链表(递归)

力扣中反转列表的递归解法

2024-05-20 22:30:01 110

原创 Linux下的权限

Linux环境下的权限设置

2024-05-20 22:29:29 1262

原创 Linux下基本指令

Linux下的一些基本指令和Linux下的基本知识,适用于Linux上指令的入门

2024-05-12 14:35:48 656

原创 合并连个有序链表(递归)

宏观看待递归问题,三步法解决递归

2024-05-12 14:35:30 219

原创 汉诺塔问题

我们一提到汉诺塔问题就知道要用递归来解决,但是,我们并不知道为什么要用递归。接下来,我们就分析一下汉诺塔问题。

2024-05-11 20:50:33 173

原创 递归,搜索,和回溯算法

对于递归算法的介绍,和递归的写法的基本思路

2024-05-11 20:50:28 353

原创 stack和queue

1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。3. stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:empty:判空操作back:获取尾部元素操作push_back:尾部插入元素操。

2024-03-05 22:39:04 1122

原创 List类

1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。3. list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。4. 与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好。

2024-03-05 21:55:37 887

原创 vector类

1. vector是表示可变大小数组的序列容器。2.就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自 动处理。3.本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小 为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。

2024-02-22 22:10:52 941

原创 二叉树与堆

目录1.树概念及结构1.1树的概念1.2 树的相关概念1.3 树的表示1.4 树在实际中的运用(表示文件系统的目录树结构)2.二叉树概念及结构2.1概念2.2现实中的二叉树:2.3 特殊的二叉树:2.4 二叉树的性质2.5 二叉树的存储结构3.二叉树的顺序结构及实现3.1 二叉树的顺序结构3.2 堆的概念及结构3.3 堆的实现3.2.1 堆向下调整算法3.2.2堆的创建3.2.3 建堆时间复杂度3.2.4 堆的插入3.2.5 堆的删除3.2.6 堆的代码实现3.4 堆的应用3.4.1 堆排序3.4.2 TO

2024-02-22 20:24:08 1033 1

原创 C++模版初阶

如果在C++中,也能够存在这样一个模具,通过给这个模具中填充不同材料(类型),来获得不同材料的铸件(即生成具体类型的代码),那将会节省许多头发。巧的是前人早已将树栽好,我们只需在此乘凉。泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。

2024-02-15 18:39:16 956

原创 string类

3. resize(size_t n) 与 resize(size_t n, char c)都是将字符串中有效字符个数改变到n个,不同的是当字符个数增多时:resize(n)用0来填充多出的元素空间,resize(size_t n, char c)用字符c来填充多出的元素空间。C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。

2024-02-15 18:39:00 866

原创 C/C++内存管理

不同的数据在存储的时候有不同的需求,各个区域满足了不同数据的存储需求.

2024-02-04 20:42:58 549

原创 类与对象(下)

类与对象的最后一部分。

2024-02-04 20:11:37 1150

原创 类与对象(中)

如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。

2024-01-31 15:39:07 679

原创 类与对象(上)

C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。

2024-01-22 20:17:38 886

原创 二叉树的OJ题——6.前序遍历

此题要保存节点,所以需要先获取节点个数,然后进行前序遍历,保存每一个节点值。//节点个数 = 左右子树节点个数 + 1。

2023-12-26 18:02:53 393

原创 二叉树OJ题——9.另一棵树的子树

判断t是否为s的子树,需要判断t是否和s的某一个子树相同,所以此题就是判断两棵树是否相同的逻辑。

2023-12-26 18:01:14 362

原创 二叉树OJ题——5.对称二叉树

判断一个树是否对称,首先要判断左右孩子是否对称相等,还需要判断左孩子的左子树是否和右孩子的右子树对称,左孩子的右子树是否和右孩子的左子树对称。

2023-12-26 17:58:47 374

原创 二叉树OJ题——4.相同的树

首先比较根节点是否相同,然后分别比较左右子树是否相同。

2023-12-26 17:56:45 320

原创 二叉树OJ题——3.翻转二叉树

翻转每一棵树的左右子树根节点。

2023-12-26 17:54:11 326

原创 二叉树OJ题——2.二叉树最大深度

二叉树的最大深度等价于:左右子树的最大深度 + 1。

2023-12-26 17:50:23 326

原创 二叉树OJ题1--单值二叉树

遍历二叉树,并且每一个节点值都和根节点的值进行比对,如果不等于根节点的值,则不是单值树。

2023-12-26 17:48:42 366

原创 大小堆的实现

这段代码主要定义了一个堆的数据结构和相关操作。堆是一种特殊的树形数据结构,它满足堆的性质要求,通常被用于实现优先队列等数据结构。堆可以作为最大堆或最小堆来使用,这取决于如何对数据进行初始化。

2023-12-26 15:27:46 373

原创 栈和队列OJ题——15.循环队列

入队:首先要判断队列是否已满,再进行入队的操作,入队操作需要考虑索引循环的问题,当索引越界,需要让它变成最小值。出队:首先要判断队列是否为空,再进行出队操作,出队也需要考虑索引循环的问题。判满: 队尾 + 1 == 队头。通过一个定长数组实现循环队列。判空: 队头 == 队尾。

2023-12-03 23:10:12 297 1

原创 栈和队列的OJ题——14.用栈实现队列

出队操作: 当出队的栈不为空是,直接进行出栈操作,如果为空,需要把入队的栈元素全部导入到出队的栈,然后再进行出栈操作。此题可以用两个栈实现,一个栈进行入队操作,另一个栈进行出队操作。

2023-12-03 23:07:04 110

原创 栈和队列的OJ题--13.用队列实现栈

出栈操作相当于非空队列的队尾元素出队,此时需要把非空队列除最后一个元素之外的其余元素入队到空队列,然后出队最后一个队尾元素。解题思路: 此题可以用两个队列去实现一个栈,每次始终保持一个队列为空,入栈操作相当于给非空队列进行入队操作。

2023-12-03 23:03:39 112

原创 动态开辟空间的单链表式队列的实现

【代码】动态开辟空间的单链表式队列的实现。

2023-11-29 09:26:59 53

原创 栈 和 队列

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。栈中的数据元素遵守后进先出LIFO)的原则。压栈:栈的插入操作叫做进栈压栈入栈,。出栈:栈的删除操作叫做出栈。。

2023-11-23 23:47:29 76

原创 动态开辟空间的数组栈的实现

【代码】动态开辟空间的数组栈的实现。

2023-11-23 23:42:20 554

原创 栈和队列的OJ题--12.括号匹配

2. 右括号,与栈顶的左括号进行匹配,如果不匹配直接返回false。循环结束后,如果栈空则匹配,否则左括号比右括号多肯定不匹配。1. 左括号,直接入栈。

2023-11-23 23:32:40 61

原创 单链表OJ题——11.随机链表的复制

2.复制随机指针的链接:拷贝节点的随机指针指向被拷贝节点随机指针的下一个位置。1.拷贝链表的每一个节点,拷贝的节点先链接到被拷贝节点的后面。3.拆解链表,把拷贝的链表从原链表中拆解出来。

2023-11-22 09:10:53 106

原创 单链表OJ题——10.环形链表2

所以从相遇点开始slow继续走,让一个指针从头开始走,相遇点即为入口节点。fast所走的步数为:L + X + N * C。slow所走的步数为:L + X。即: L = N * C - X。

2023-11-22 09:08:51 81

原创 单链表OJ题--9.环形链表

定义快慢指针fast,slow, 如果链表确实有环,fast指针一定会在环内追上slow指针。

2023-11-22 09:05:36 88

原创 单链表OJ--8.相交链表

此题可以先计算出两个链表的长度,让长的链表先走相差的长度,然后两个链表同时走,直到遇到相同的节点,即为第一个公共节点。

2023-11-22 09:03:18 74

原创 单链表OJ题--6.链表分割

创建两个链表,分别存放小于x的节点和大于等于x的节点,分别进行尾插。

2023-11-22 08:59:24 41

空空如也

空空如也

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

TA关注的人

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