- 博客(16)
- 收藏
- 关注
原创 【Linux】冯诺依曼系统与操作系统
例如我们想对一个班的学生进行管理,每个学生都有学号、性别、成绩等数据(描述),但是如果把学生叫过来问过于麻烦,那么我们可以使用顺序表、链表等数据结构将这些数据存下来再进行管理(组织),我们再对其进行管理,例如修改状态,成绩等我们在做管理的这个过程中,其实我们并没有直接跟学生打交道,而是对他存在我们表中的数据打交道。操作系统对于硬件等内容的管理同样也不是直接管理硬件,而是管理硬件映射出的信息,操作系统会对每个硬件创建一个结构体,对于结构体中存放该硬件的状态信息等内容,再组织成数据结构来统一管理。
2025-09-28 09:39:08
706
22
原创 【C++】模版专题
class 类模板名// 类内成员定义成员函数可在类内或类外定义。类外定义需包含模板声明。T element;public:template <typename T> // 类外定义需重复模板声明一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。【优点】模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性【缺陷】
2025-09-25 17:44:23
1032
26
原创 【C++】内存管理
int main()/*new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数*/free(aa2);delete aa1;/* 对于内置类型来说,其并没有什么区别 */free(aa4);return 0;
2025-09-24 09:02:51
1089
17
原创 【C++】类和对象(3)
无论是否显示写初始化列表,每个构造函数都有初始化列表;无论是否在初始化列表显示初始化成员变量,每个成员变量都要走初始化列表初始化;
2025-08-02 13:36:50
927
31
原创 【C++】类和对象(2)
析构函数与构造函数功能相反,析构函数不是完成对对象本⾝的销毁,比如局部对象是存在栈帧的, 函数结束栈帧销毁,他就释放了,不需要我们管,C++规定对象在销毁时会⾃动调⽤析构函数,完成对 象中资源的清理释放⼯作。构造函数是特殊的成员函数,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任务并不是开空间创建对象(我们常使用的局部对象是栈帧创建时,空间就开好了),而是对象实例化时初始化对象。除非一些很特殊的场景,比如我们不想让别人取到当前类对象的地址,就可以自己实现一份,胡乱返回一个地址。
2025-08-02 09:48:49
1083
23
原创 【C++】类和对象(1)
class为定义类的关键字,Date为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前面或者后面加_或者m开头,注意C++中这个并不是强制的,只是⼀些惯例,具体看公司的要求。定义在类面的成员函数默认为inline。
2025-07-24 22:10:16
857
34
原创 【C++】初识C++(2)
引用不是新定义⼀个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间, 它和它引用的变量共用同⼀块内存空间。格式: 类型& 引用别名=引用对象;
2025-07-19 18:49:38
1766
27
原创 【C++】初识C++(1)
C++是在C语言的基础上发展而来的一种面向对象编程语言,它在保留C语言强大功能的同时,引入了许多新的特性。比如面向对象编程(OOP):类, 封装, 继承, 多态四大件,引用(Reference),模板(Template),命名空间(Namespace),异常处理(Exception Handling),标准模板库(STL)。C++在很多领域有着广泛的应用,比如游戏开发,操作系统开发,嵌入式系统开发, 数据库管理系统,图形图像处理和网络通信(QT),虚拟现实(VR)和增强现实(AR),航空航天与军工领域等。
2025-07-15 15:52:55
1059
21
原创 【数据结构】排序合集(直接插入排序、希尔排序、冒泡排序、堆排序、选择排序、快速排序、归并排序、计数排序)
完希望这篇小小文章可以为你解答疑惑!若上述文章有什么错误,欢迎各位大佬及时指出,我们共同进步!
2025-05-25 11:38:10
1485
32
原创 【数据结构】堆的实现
堆的本质是一个二叉树,且总是一棵完全二叉树。。与二叉树的区别在于:对于这棵二叉树而言,任何一个子树根节点上的数据和孩子节点上的数据之间是存在一种关系的。小根堆(min heap):任意节点的值 ≤ 其子节点的值。大根堆(max heap):任意节点的值 ≥ 其子节点的值我们将二叉树的根节点称为“ 堆顶 ”,将底层最靠右的节点称为“ 堆底 ”。不难发现,对于大根堆(小根堆),堆顶元素的值总是最大(最小)的。
2025-05-15 20:34:13
1315
17
原创 【数据结构】二叉树的实现
设二叉树的根结点所在层数为1,层序遍历就是从所在二叉树的根结点出发,首先访问第一层的树根结点,然后从左到右访问第2层 上的结点,接着是第三层的结点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。由于被访问的结点必是某子树的根,所以N(Node)、L(Left subtree)和R(Right subtree)又可解释为根、根的左子树和根的右子树。所谓二叉树遍历(Traversal)是按照某种特定的规则,依次对二叉树中的结点进行相应的操作,并且每个结点只操作一次。非终端节点或分支节点。
2025-05-15 19:00:47
944
17
原创 【数据结构】栈和队列的实现
/ 支持动态增长的栈int top;// 栈顶// 容量}Stack;// 链式结构:表示队列}QNode;// 队列的结构int size;}Queue;栈和队列都是一种特殊的线性表。栈的特点:后进先出,只能在表尾进行插入和删除。队列的特点:先进先出,只能在表头删除,在表尾插入。栈常用顺序存储结构即数组的方式,因为数组的尾插尾删效率高,但可能会存在频繁开辟内存空间和内存空间浪费的问题。
2025-05-07 21:04:37
1292
22
原创 【数据结构】单链表的实现
概念:链表是一种物理存储结构上非连续、非顺序的存储结构,但链表在逻辑上是连续的,顺序的,而数据元素的逻辑顺序是通过链表中的指针连接次序实现的。
2025-04-26 20:37:54
993
17
原创 【数据结构】 顺序表的应用——通讯录项目
本篇文章将介绍一个基于顺序表的项目——通讯录。通讯录我们都知道,细细一想通讯录不就是一个顺序表吗?在通讯录中以一个联系人为位,存储着若干个联系人的各种信息,我们也可以对通讯录中的联系人信息进行相应的增、删、查、改操作。但是上篇文章的顺序表存的只是整型数据,而在本文,联系人数据可不只是整形数据,如果想把一个联系人的各种信息以一个联系人为单位存储,就需要用到我们之前学到的内置类型——结构体类型。接下来将详细介绍基于顺序表的通讯录项目搭建的具体过程。本文将延用上篇文章中实现好的顺序表代码——>
2025-04-23 21:30:34
1239
19
原创 【数据结构】顺序表的实现
线性表(linearlist)是n个具有相同特性的数据元素的有限序列。线性表是⼀种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的⼀条直线。但是在物理结构上并不⼀定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。
2025-04-21 21:57:50
899
17
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅