自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 stack与queue和deque

stack与queue的介绍使用和模拟实现,deque的了解及对比

2025-04-01 23:51:01 842 24

原创 详解list容器

list的介绍和使用,与vector区别,list的模拟实现

2025-03-31 00:02:18 928 35

原创 详解vector容器

介绍vector,详解各主要接口的使用,OJ的运用,模拟实现

2025-03-25 19:43:50 1254 25

原创 详解string类+迭代器

迭代器,string类的常用接口,string类的模拟实现

2025-03-20 23:28:42 1749 30

原创 C++模板初阶

初步学习模板内容,为后续深入打基础

2025-03-14 19:50:32 814 28

原创 C/C++内存管理

详解C/C++内存管理方式的异同,以及new/delete的原理实现等

2025-03-13 10:09:29 1615 20

原创 类和对象(下)

详细讲解初始化列表等内容,以及类和对象收尾学习

2025-03-11 23:53:41 1464 29

原创 类和对象(中)

更加细致了解,学习类和对象

2025-03-10 18:56:17 1019 19

原创 类和对象(上)

C语言结构体只能定义变量,在C++中结构体内不仅可以定义变量也可以定义函数。class为定义类的关键字,classname为类的名字,{}中为类的主体。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。类的两种定义方式:1.声明和定义全部放在类体中,若成员函数在类中声明定义,编译器可能将其当成内联函数来处理。2.类声明放在.h文件中,成员函数定义在.cpp文件中,成员函数名前需加 类名::!!!,可根据函数代码量来确定哪一种方式,一般第二种更稳妥。

2025-03-06 07:40:19 1015 26

原创 C++入门

2.该段代码第一次打印通过::指定访问命名空间域来打印rand,第二次由于没有在main函数中定义rand局部变量,编译器会到全局作用域查找,在预处理阶段展开的头文件中包含rand的定义,编译器将视为对rand的调用,通过%p来打印标准库中rand的地址。以值作为参数或者返回值类型,在传参和返回期间,函数不会直接传递实参或者将变量本身直接返回,而是传递实参或者返回变量的一份临时的拷贝,因此用值作为参数或者返回值类型,效率是非常低下的,尤其是当参数或者返回值类型非常大时,效率就更低。

2025-03-05 07:54:26 985 21

原创 常见排序算法

稳定性定义:相等元素的相对顺序在输出中保持不变。简单选择排序(直接):在类似前三个元素是221的情况下不稳定。希尔排序:相同的数据可能会被分到不同的组预排序,不稳定。堆排序:在类似建大堆实现升序排序时,通过删除末尾元素和向下调整法保持堆序不稳定快速排序:在划分出的不同子区间内有和头尾部相同的数据时不稳定。

2025-02-28 09:34:28 1540 19

原创 链式二叉树

BTNode;创建结构体类型的左右指针来链接,data来存储数据。

2025-02-24 09:59:58 1193 9

原创 堆的实现和堆排序

升序 建大堆:根节点是数组中最大值,将其与最后一个叶结点交换位置,删除堆中最后一个结点(原根结点),再对剩余元素向下调整重构最大堆,此时根结点变成第二大值,通过不断将堆顶元素移到数组末尾,可以逐步让数组变成升序。思路:用数据中前k个元素来建堆,剩余的N-K个元素依次与堆顶元素比较,不满足则替换堆顶元素,比较完后堆中剩余的K个元素就是所求的前K个最小或最大的元素。2.交换堆顶元素和最后一个元素,即数组第一个和最后一个,size–减少堆的大小,相当于删除了堆的最后一个元素(原堆顶元素)

2025-02-19 11:36:26 1187 9

原创 树的概念及结构

的判断。

2025-02-15 09:31:00 464 2

原创 栈和队列OJ

思路:用两个栈来实现,一个栈专门用来入数据,另一个专门出数据。和用队列实现栈的区别在于将一个栈中数据倒入另一个栈中时,由于栈的特点是后进先出,实现队列先进先出的功能时数据顺序已发生变化,所以出数据后不需要再将数据倒回,入数据时先入到另一个栈中,等该栈出数据完后再倒进来。先进性空队列的假设,再用一个条件判断语句来修正错误,利用while循环将不为空队列中的元素压入到空队列中,压入后再删除非空队列中该元素,循环成立条件为队列中元素个数大于1,最后创建一个变量来保存栈顶元素并返回。先判断队列是否已满。

2025-02-13 21:28:53 976 1

原创 栈和队列的实现

/用于存储栈数据的指针成员int top;//栈顶//容量}ST;定义支持动态增长的栈}QNode;定义了一个QueueNode的结构体,用于表示队列中的节点//对常用的多个数据进行封装,便于传参和修改int size;}Queue;定义了一个名为Queue的结构体,表示整个队列数据封装中设置tail指针为了方便找尾,size为了方便确认元素个数两者关系:Queue结构体通过head和tail指针来管理一系列QueueNode结构体组成的链式队列。

2025-01-29 10:59:13 638 1

原创 双向链表及链表总结

与单链表区别在于,双向体现在多了一个prev指向上一个节点的指针,循环体现在尾节点的next指针指向哨兵位头节点,哨兵位头节点的prev指针指向尾节点。

2025-01-23 18:19:23 1476 5

原创 经典链表OJ(接口型)

通过以上例题发现除环形链表外的大部分题目,其实都在换种方式用头插、尾插等方式解决问题,一般少用具体查找和删除(涉及改变前一个和后一个节点的指向,需要分类讨论稍复杂),要熟悉哨兵位头节点以及各种置空条件的判断,而且这些题目都是单向的,要对单链表增删查改的掌握程度有一定要求。

2025-01-19 19:43:46 1322 2

原创 数据结构初阶——单链表

返回值是一个结构体类型指针。通过malloc动态开辟一个内存为SLTNode结构体大小的空间,该结构体指针newnode指向这块空间。然后判断malloc是否成功,返回值不为空就将其中存放数据位置赋值为目标值,再将存放指针位置置空,方便后续链接。

2025-01-14 17:43:42 1196 2

原创 数据结构初阶——顺序表

首先记得包含头文件。首先断言传进来的指针是否为空,通过箭头操作符访问结构体s(初始化在主函数中,后续部分可查看)中的指针a,使用动态内存函数malloc开辟空间,size代表整个空间大小创作不易,希望我的理解能对大家有所帮助,若有什么问题欢迎指正。

2025-01-09 12:11:06 956 2

原创 数据结构初阶——复杂度

该函数会先调用n-1,n-1会调用n-2、n-3,优先n-2,所以调用的优先顺序是n、n-1、n-2、n-3等,再每一次返回的过程完成时再调用同时调用优先级低的一方,因为二者在同一函数内,所以使用内存空间相同。定义:算法的复杂度是一个函数(指数学中),定量描述了算法的运行时间,但是每个算法在不同配置的机器上运行时间又有所差异,所以把。通过malloc函数动态开辟了一块大小与输入n大小成正比的内存空间,即为n的线性函数,所以n就是临时占用存储空间的量度。这里表示O(N^2),可以看出N代表的是代入函数后。

2025-01-07 14:42:51 513 4

空空如也

空空如也

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

TA关注的人

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