自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STL之list的模拟实现

1. list的成员变量 2. list的成员函数 2.1 list的迭代器 2.2 list的初始化与销毁  2.2.1 构造函数与拷贝构造2.2.2 赋值重载与析构函数 2.3 list的容量操作  2.3.1 size()与empty()2.3.2 clear()与resize() 2.4 list的访问操作 2.5 list的修改操作 3. 源码 

2025-04-01 23:28:18 995

原创 stack与queue的模拟实现

代码实现 StackQueue.h文件 test.cpp文件 实现结果 

2025-03-30 14:37:02 156

原创 STL之stack与queue的使用

1. stack与queue的介绍1.1. 容器适配器  1.2 deque的简单了解2. stack与queue的使用 

2025-03-27 09:22:09 957

原创 STL之list的使用(超详解)

一、list的介绍及使用1.1 list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2  iterator的使用 1.2.3capacity(容量相关) 1.2.4  element access(元素访问) 1.2.5 modifiers(链表修改) 1.2.6 operation(对链表的一些操作) 二、从功能角度迭代器分类: 

2025-03-09 21:36:18 929

原创 STL之vector 迭代器失效问题

1、前言2、迭代器失效的几种情况情况一:底层空间改变的操作情况二:进行指定元素删除的时候—erase情况三:在其他编译环境下的失效情况3.vector迭代器失效的解决方法 

2025-03-05 11:39:31 908

原创 STL之vector类的模拟实现

目录1. vector的成员变量 2. vector的成员函数 2.1. vector的迭代器 2.2. vector的初始化与销毁 2.2.1. 构造函数与拷贝构造2.2.2. 赋值重载与析构函数 2.3. vector的容量操作 2.3.1. 有效长度与容量大小2.3.2. 容量操作 2.4. vector的访问操作 2.5. vector的修改操作 2.5.1. 常见的修改操作 3. 源码 3.1 vector.h 3.2 test.cpp 3.3 运行结果

2025-03-04 00:07:38 673

原创 STL之string类的模拟实现

1. string的成员变量2. string的成员函数 2.1 string类的c_str()和swap()函数2.2 string类的构造  2.3 string类的拷贝构造2.3.1传统写法:2.3.2现代写法: 2.4string类的运算符重载  2.4.1传统写法:2.4.2现代写法 2. 5 string析构函数 2.6 string的迭代器 2.7 string的容量操作 2.7.1. 有效长度与容量大小 2.7.2. 容量操作 

2025-02-19 21:24:21 634

原创 【探索数据结构与算法】树与二叉树下篇(思路详解)

/数据类型重命名}BTNode;//结构体重命名。

2024-11-18 15:46:17 668

原创 STL之vecor的使用(超详解)

 1. C/C++中的数组 2. vector的接口

2024-11-11 23:32:39 871

原创 STL之string的使用(超详解)

string的使用超详解

2024-11-07 13:23:59 990

原创 日期类的模拟实现(超详解)

1. 项目功能.2. 功能实现2.1 构造函数与拷贝构造与赋值重载,析构函数2.2. 两个日期之间的比较2.4. 日期自增与自减2.5.两日期相减2.6流输入与流输出。3. 完整代码3.1. Date.h3.2. Date.cpp4.代码运行

2024-10-30 00:24:02 885 1

原创 C++:模版初阶

1. 泛型编程2.函数模版2.1. 函数模版的用法2.2. 函数模版的原理2.3函数模板的实例化2.4 模版参数的匹配原则3. 类模版3.1 类模版的格式3.2. 类模版的实例化

2024-10-26 22:40:36 818

原创 C++内存管理(超详解)

1. C/C++的内存分布2.回顾C语言中的动态内存管理3. C++中的内存管理3.1. new与delete操作内置类型3.2. new与delete操作自定义类型3.4. new与delete的实现3.5. 定位new表达式4.malloc/free和new/delete的区别

2024-10-23 19:18:52 826

原创 超详解C++类与对象(下)

1. 初始化列表1.1. 定义2.2. 注意2.隐式类型转换2.1. 内置类型2.2. 自定义类型2.3. explicit关键字3.类的静态成员2.1. 定义2.2. 注意4.const成员函数5. 友元5.1友元函数5.2. 友元类6. 内部类6.1. 定义6.2. 注意7. 匿名对象7.1匿名对象7.2延长生命周期的匿名对象

2024-10-23 17:43:11 928

原创 超详解C++类与对象(中)

1. 构造函数2.析构函数3.拷贝构造函数4.运算符重载5. 赋值运算符重载5.1. 定义5.2. 注意

2024-10-09 18:55:00 795

原创 【探索数据结构与算法】树与二叉树上篇(图文详解)

树是一种非线性的数据结构,它是由n(n >= 0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。在树中有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M > 0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1 <= i<= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继因此,树是递归定义的。注意:树形结构中,子树之间不能有交集,否则就不是树形结构。

2024-09-18 16:19:03 1091

原创 【探索数据结构与算法】快速排序超详解:hoare版本、挖坑法、前后指针法、优化版、非递归实现

快速排序超详解:hoare版本、挖坑法、前后指针法、优化版、非递归实现

2024-09-17 20:44:21 1001

原创 【探索数据结构与算法】选择排序:原理、实现、优化与分析(图文详解)

在众多排序算法中,选择排序以其简洁直观的特点而著称。尽管在效率上不是最优的,特别是对于大规模数据集而言,但选择排序的算法思想却蕴含着深刻的逻辑和广泛的应用场景。通过不断选择剩余元素中的最小(或最大)元素,并将其放置到序列的起始位置,选择排序以一种简单而直接的方式完成了数据的排序。

2024-09-17 10:24:23 737

原创 【探索数据结构与算法】希尔排序原理、实现与分析(图文详解)

希尔排序(Shell Sort)是插入排序的一种更高效的改进版本,也称为缩小增量排序。

2024-09-16 21:16:26 1439

原创 【探索数据结构与算法】插入排序:原理、实现与分析(图文详解)

因此,第i个元素需要比较i次(其中i从2开始,直到n),总共需要进行的比较次数大约为1 + 2 + 3 + ... + (n-1) = n(n-1)/2,时间复杂度为O(n^2)。当输入数组已经是排序状态时,插入排序的性能最优。插入排序是一种原地排序算法,它只需要一个额外的存储空间来暂存当前需要插入的元素(即“key”),而不需要额外的数组来存储排序过程中的数据。在插入排序过程中,如果两个相等的元素,后面的元素不会移动到前面元素的前面,而是直接插入到与它相等的元素之后,从而保持了原有的相对顺序。

2024-09-16 20:32:31 1377

原创 掌握C语言文件操作

磁盘上的文件就是文件。然而在程序设计中,我们所谈的文件有两种,一种是程序文件,另一种是数据文件(从文件功能的角度来分类的)文件名一个文件要有一个唯一的文件标识,以便用户识别和引用,这就是文件名⽂件名包含3部分:⽂件路径+⽂件名主⼲+⽂件后缀程序文件与数据文件。

2024-08-24 19:34:51 866

原创 【探索数据结构与算法】向上调整建堆与向下调整建堆的时间复杂度

堆排序是一种优于冒泡排序的算法, 那么在进行堆排序之前, 我们需要先创建堆, 那么这个建堆的时间复杂度是多少呢?

2024-08-23 13:05:24 404

原创 【探索数据结构与算法】堆的具体实现和应用

目录一.堆的基本概念二.堆的结构定义 三.堆的接口实现 1.初始化2.销毁 3.向上调整算法(重要) 4.入堆 5.向下调整算法(重要) 6.出堆 7.取堆顶元素 8.对堆判空 9.获取堆的数据个数 四.C语言实现堆的完整代码 Heap.h Heap.c test.c 堆排序:数据流中的TopK问题: 堆的特性数组与堆的关联 为什么选择数组?注意:我们只是把数组在逻辑上想象成了抽象的堆,其实它本质上就是数组 数组与堆的映射关系(重要) 堆的结构定义与顺序表基本是一致的,这也更说明了堆的概

2024-08-21 22:30:00 580

原创 【数据结构算法经典题目刨析(c语言)】使用栈实现队列(图文详解)

超详解使用栈实现队列(图文详解)

2024-08-18 13:26:54 480

原创 【数据结构算法经典题目刨析(c语言)】使用数组实现循环队列(图文详解)

使用数组实现循环队列(图文详解)

2024-08-17 23:16:58 1246

原创 【数据结构算法经典题目刨析(c语言)】使用队列实现栈(图文详解)

使用队列实现栈(图文详解)

2024-08-12 23:07:20 844

原创 【探索数据结构与算法】使用单链表实现队列

使用单链表实现队列详解

2024-08-09 23:44:06 1193

原创 【探索数据结构与算法】——深入了解栈数据结构(图文详解)

全网这一篇就够了。深入了解栈数据结构(图文详解)

2024-08-09 19:40:37 1058 1

原创 【探索数据结构与算法】——深入了解双向链表(图文详解)

【探索数据结构与算法】——深入了解单链表(图文详解)

2024-08-08 19:57:17 1247

原创 【探索数据结构与算法】——深入了解单链表

单链表详解

2024-08-08 16:22:21 631

原创 【探索数据结构与算法】——基于顺序表实现通讯录

顺序表实现通讯录的功能.

2024-08-07 10:11:34 670

原创 【探索数据结构与算法(C语言)】——顺序表

顺序表的基本操作(超详细)、功能、代码实现​​​

2024-08-06 23:01:17 619

原创 【数据结构算法经典题目刨析(c语言)】括号匹配问题(图文详解)

括号匹配问题(图文详解)

2024-08-04 16:23:02 539 1

原创 【数据结构算法经典题目刨析(c语言)】求带环链表的入环节点(图文详解)

两种方法求带环链表的入环节点(图文详解)

2024-08-02 18:58:53 741

原创 【数据结构算法经典题目刨析(c语言)】判断链表是否有环(图文详解)

快慢指针法判断链表是否有环(图文详解)

2024-08-02 17:25:20 427

原创 【数据结构算法经典题目刨析(c语言)】随机链表的复制(图文详解)

随机链表的复制(图文详解)

2024-08-01 21:21:34 1024

原创 【数据结构算法经典题目刨析(c语言)】链表的回文结构(图文详解)

链表的回文结构(图文详解)

2024-08-01 11:04:53 949

原创 【数据结构算法经典题目刨析(c语言)】反转链表(图文详解)

反转链表问题解决

2024-08-01 09:51:22 368

原创 【数据结构算法经典题目刨析(c语言)】顺序表和链表的区别(图文详解)

这是因为CPU在访问数据时,为了更快速的访问,CPU会把内存中的数据放在更快的存储设备(高速缓存),如果访问数据在缓存,缓存命中,直接访问,不在缓存叫不命中,要把数据从内存加载到缓存,再访问,但在放入时,CPU会以自身字长(可相当于好几个要访问的数据空间大小)大小的空间把要访问的数据放入缓存中,又因顺序表是连续的所以一次可以把好几个数据放入缓存。为什么顺序表的缓存利用率高于链表呢?

2024-07-31 14:34:08 779

原创 数据结构算法经典题目刨析(c语言)返回单链表的倒数第 k 个节点(图文详解)

详解返回单链表的倒数第 k 个问题

2024-07-30 07:59:39 407

空空如也

空空如也

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

TA关注的人

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