- 博客(62)
- 收藏
- 关注
原创 《王道操作系统》4.1.2OS之文件逻辑结构(顺序文件、索引文件、索引顺序文件、多级索引顺序文件)
文件可分为无结构和有结构两大类。有结构文件包括:定长记录、不定长记录、顺序文件、索引文件、索引顺序文件(含效率分析)和多级索引顺序文件。这些分类反映了文件组织方式的多样性,其中索引顺序文件和多级索引结构特别关注存储和查询效率。
2025-07-04 13:39:06
213
原创 《王道操作系统》4.1.1初识文件管理概念和功能
本文主要探讨操作系统文件管理的核心内容,包括:1)文件属性;2)文件逻辑结构(数据组织方式);3)目录结构设计;4)操作系统应提供的文件操作接口(如创建、删除等);5)文件物理存储结构;6)外存空间管理方法(稍后详述);7)其他文件管理功能。作者因期末备考暂时未完成详细博客,后续将补充完整内容。该系列是操作系统学习笔记的一部分,前序章节已涵盖计算机系统概述、进程管理和内存管理。
2025-07-03 12:52:43
228
原创 C++:深入理解继承
1. 继承的概念与定义1.1. 继承的概念1.2. 继承的定义 2. 基类与派生类赋值转换2.1. 派生类对象赋值给基类对象 2.2. 派生类对象的引用赋值给基类对象 2.3. 派生类对象的指针赋值给基类对象 3. 继承的作用域 3.1. 同名变量3.2. 同名函数 4. 派生类的默认成员函数 5. 继承中的友元与静态成员 5.1. 继承中的友元5.2. 继承中的静态成员 6. 菱形继承与虚拟继承 6.1. 菱形继承6.2. 虚拟继承 7.继承与组合
2025-04-16 16:37:41
763
原创 C++:模版进阶
1. 非类型模板参数 2. 模板的特化 2.2 函数模板特化2.3 类模板特化2.3.1 全特化2.3.2 偏特化 3 模板分离编译 3.1 什么是分离编译 3.2 模板的分离编译
2025-04-15 12:12:09
989
原创 STL之priority_queue的用法与实现
1. priority_queue的介绍 1.1. priority_queue的概念1.2. priority_queue的特点 2. 仿函数 2.1. 仿函数的概念2.2. 仿函数的应用 2.3 仿函数的灵活性 3. priority_queue的用法 4. 模拟实现priority_queue 4.1. 插入 4.2. 删除
2025-04-14 20:44:09
998
原创 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
1061
原创 STL之stack与queue的使用
1. stack与queue的介绍1.1. 容器适配器 1.2 deque的简单了解2. stack与queue的使用
2025-03-27 09:22:09
1019
原创 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
1086
原创 STL之vector 迭代器失效问题
1、前言2、迭代器失效的几种情况情况一:底层空间改变的操作情况二:进行指定元素删除的时候—erase情况三:在其他编译环境下的失效情况3.vector迭代器失效的解决方法
2025-03-05 11:39:31
1197
原创 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
720
原创 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
685
原创 日期类的模拟实现(超详解)
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
926
1
原创 C++:模版初阶
1. 泛型编程2.函数模版2.1. 函数模版的用法2.2. 函数模版的原理2.3函数模板的实例化2.4 模版参数的匹配原则3. 类模版3.1 类模版的格式3.2. 类模版的实例化
2024-10-26 22:40:36
966
原创 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
947
原创 超详解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
993
原创 【探索数据结构与算法】树与二叉树上篇(图文详解)
树是一种非线性的数据结构,它是由n(n >= 0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。在树中有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M > 0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1 <= i<= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继因此,树是递归定义的。注意:树形结构中,子树之间不能有交集,否则就不是树形结构。
2024-09-18 16:19:03
1151
原创 【探索数据结构与算法】快速排序超详解:hoare版本、挖坑法、前后指针法、优化版、非递归实现
快速排序超详解:hoare版本、挖坑法、前后指针法、优化版、非递归实现
2024-09-17 20:44:21
1076
原创 【探索数据结构与算法】选择排序:原理、实现、优化与分析(图文详解)
在众多排序算法中,选择排序以其简洁直观的特点而著称。尽管在效率上不是最优的,特别是对于大规模数据集而言,但选择排序的算法思想却蕴含着深刻的逻辑和广泛的应用场景。通过不断选择剩余元素中的最小(或最大)元素,并将其放置到序列的起始位置,选择排序以一种简单而直接的方式完成了数据的排序。
2024-09-17 10:24:23
779
原创 【探索数据结构与算法】希尔排序原理、实现与分析(图文详解)
希尔排序(Shell Sort)是插入排序的一种更高效的改进版本,也称为缩小增量排序。
2024-09-16 21:16:26
1520
原创 【探索数据结构与算法】插入排序:原理、实现与分析(图文详解)
因此,第i个元素需要比较i次(其中i从2开始,直到n),总共需要进行的比较次数大约为1 + 2 + 3 + ... + (n-1) = n(n-1)/2,时间复杂度为O(n^2)。当输入数组已经是排序状态时,插入排序的性能最优。插入排序是一种原地排序算法,它只需要一个额外的存储空间来暂存当前需要插入的元素(即“key”),而不需要额外的数组来存储排序过程中的数据。在插入排序过程中,如果两个相等的元素,后面的元素不会移动到前面元素的前面,而是直接插入到与它相等的元素之后,从而保持了原有的相对顺序。
2024-09-16 20:32:31
1563
原创 掌握C语言文件操作
磁盘上的文件就是文件。然而在程序设计中,我们所谈的文件有两种,一种是程序文件,另一种是数据文件(从文件功能的角度来分类的)文件名一个文件要有一个唯一的文件标识,以便用户识别和引用,这就是文件名⽂件名包含3部分:⽂件路径+⽂件名主⼲+⽂件后缀程序文件与数据文件。
2024-08-24 19:34:51
899
原创 【探索数据结构与算法】向上调整建堆与向下调整建堆的时间复杂度
堆排序是一种优于冒泡排序的算法, 那么在进行堆排序之前, 我们需要先创建堆, 那么这个建堆的时间复杂度是多少呢?
2024-08-23 13:05:24
437
原创 【探索数据结构与算法】堆的具体实现和应用
目录一.堆的基本概念二.堆的结构定义 三.堆的接口实现 1.初始化2.销毁 3.向上调整算法(重要) 4.入堆 5.向下调整算法(重要) 6.出堆 7.取堆顶元素 8.对堆判空 9.获取堆的数据个数 四.C语言实现堆的完整代码 Heap.h Heap.c test.c 堆排序:数据流中的TopK问题: 堆的特性数组与堆的关联 为什么选择数组?注意:我们只是把数组在逻辑上想象成了抽象的堆,其实它本质上就是数组 数组与堆的映射关系(重要) 堆的结构定义与顺序表基本是一致的,这也更说明了堆的概
2024-08-21 22:30:00
712
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅