- 博客(43)
- 收藏
- 关注
原创 Linux之进程状态和优先级
本文详细介绍了Linux系统中进程的状态分类及优先级管理机制。主要内容包括:1. 进程状态部分(R/S/D/T/Z等)详解了6种核心状态的定义、转换原理和典型场景,包括运行态、阻塞态(可中断/不可中断)、挂起态、暂停态、终止态和僵尸态,并通过代码示例演示了进程状态转换过程。 优先级部分阐述了PRI和NI的概念及关系,解释内核调度优先级的计算公式。
2025-11-11 11:13:24
1177
原创 C++之set 和 map
摘要:本文系统介绍了C++ STL中的关联容器set和map的使用及底层实现原理。第一部分详解了set/multiset和map/multimap的基本特性、常用接口及注意事项。第二部分重点阐述了如何基于红黑树封装set和map。通过自定义RBTree模板类和迭代器,实现了与STL标准库功能一致的关联容器,特别解决了set迭代器const转换和map键值对访问等核心问题。全文结合代码示例展示了从底层数据结
2025-11-08 16:01:25
1150
1
原创 C++之红黑树
本文介绍了红黑树的核心概念与应用价值和模拟插入,重点分析了插入操作的三种情况及对应的调整策略(变色、旋转),并提供了代码实现和验证方法。最后通过将红黑树和AVL树进行了对比测试。
2025-11-08 16:01:05
1045
2
原创 C++之二叉树进阶
本文介绍了二叉搜索树(BST)的概念与操作实现。文章详细讲解了BST的查找、插入和删除操作的非递归与递归实现方法,也讲了拷贝构造、赋值运算符重载和析构函数等功能。
2025-10-03 00:04:19
1130
11
原创 c++之AVL树
本文系统好用讲解了AVL树的核心概念与实现。首先介绍了AVL树作为平衡二叉搜索树的优势,重点讲解了 插入操作中的平衡因子调整规则和四种旋转策略(左/右单旋、左右/右左双旋),通过图示分析并给出对应代码实现。针对调试难点,提供了验证函数和条件断点技巧。最后简要说明删除操作的复杂性,建议优先掌握插入和旋转。
2025-10-03 00:04:14
1318
3
原创 算法之滑动窗口
本文介绍了滑动窗口算法及其应用。并以长度最小的子数组问题为例,对比了暴力解法(O(n²))和滑动窗口解法(O(n))的实现差异。
2025-09-08 22:12:07
1169
2
原创 算法之双指针
双指针算法是一种高效处理线性数据结构的优化技术主要分为三种类型:同向指针(用于元素筛选重排)、对撞指针(适用于有序数据查找)和快慢指针(检测循环结构)。文章结合7道LeetCode题目(如移动零,复写0,快乐数,盛最多水的容器,有效三角形的个数,和为s的两个数字,三数之和,四数之和)
2025-09-08 19:12:18
1181
1
原创 Linux之进程概念3
本文深入解析了Linux系统中的进程概念,介绍了查看进程的ps命令、获取进程标识符的系统调用(getpid/getppid),以及fork()创建子进程的机制。
2025-09-05 00:21:52
1169
1
原创 数据结构——树
本文主要介绍了二叉树的基本概念和操作。重点讲解了二叉树的两种存储方式,二叉树的创建方法(手动构建和递归法)以及四种遍历方式(前序、中序、后序和层序遍历)。还介绍了二叉树的基本操作如节点计数、高度计算、查找节点、判断完全二叉树等,并提供了相关代码实现。还介绍了DFS(深度优先遍历)和BFS(广度优先遍历)
2025-09-05 00:21:04
636
原创 C++之多态篇
本文系统介绍了C++多态的核心概念与实现机制。主要内容包括:1. 多态的定义与实现条件。2. 虚函数与虚函数表。3. C++11新增的final和override关键字。4. 抽象类与纯虚函数的接口规范作用。5. 多态底层原理。6. 多继承场景下的虚表处理机制;7. 动态绑定与静态绑定的区别。
2025-08-28 19:16:00
1078
原创 C++之继承篇
本文系统地介绍了C++中的继承机制,重点讲解了继承的概念、访问规则、派生类对象与基类对象的赋值转换、作用域关系、默认成员函数生成规则等核心内容。特别针对复杂的菱形继承问题,深入分析了虚拟继承的原理和实现机制,包括虚基表的作用。文章还对比了继承与组合的优缺点,建议优先使用组合而非继承,以降低耦合度。
2025-08-27 02:01:37
1068
原创 Linux之冯・诺依曼体系和操作系统
本文系统介绍了计算机系统的核心架构与运行机制。首先阐述了冯・诺依曼体系的基本原理和计算机存储体系的金字塔模型,其次详细解析了操作系统的分层架构与管理逻辑,最后简要区分了库函数与系统调用的关系。全文揭示了从硬件基础到系统管理再到应用开发的计算机构成体系,为理解计算机工作原理提供了系统化视角。
2025-08-10 12:07:06
786
原创 stack和queue的使用和模拟
本文介绍了栈(stack)和队列(queue)的以及模拟实现,还介绍了deque,deque结合了vector和list的优点
2025-08-04 01:37:10
735
原创 list的使用和模拟
本文深入解析C++中list容器的特性与实现。讲解了迭代器分类(单向/双向/随机访问)及其应用场景,模拟实现了list的核心功能,对比了list与vector的性能差异,提供了完整实现代码链接。
2025-08-03 02:54:43
849
2
原创 Linux的小程序——进度条
本文介绍了C语言中实现进度条的关键技术。讲解了回车(\r)与换行(\n)的区别,以及标准输出缓冲区的概念,一个简单的倒计时和进度条
2025-07-30 16:44:18
963
原创 Linux的开发工具
本文介绍了Linux下C/C++开发的编译工具gcc和g++的核心工作流程。完整编译过程分为预处理、编译、汇编和链接四个阶段,分析了动态链接与静态链接两种链接方式的优缺点;以及Debug和Release两种编译模式的特征差异
2025-07-25 13:03:14
653
1
原创 Linux的工具
本文介绍了Linux软件安装方法和vim编辑器的基本使用,其中讲了源代码安装、rpm安装和yum安装三种方式。在vim编辑器部分,重点讲解了三种模式——命令模式、插入模式、底行模式。最后简要说明了vim的个人配置文件设置方法,提供了一些实用的配置选项
2025-07-24 16:01:34
788
原创 string类的使用
本文介绍了 C++ STL 的 string 类。先简述 STL 的重要性,及其在提升开发效率、实现代码复用等方面的作用。再重点讲解 string 类的使用,包括与 C 字符串的区别、常用接口(构造、赋值、追加、查找等)、迭代器及元素访问方法,并通过代码示例展示其自动内存管理、操作接口丰富等优势。最后简要提及 string 的模板设计原理及 wstring 等扩展类型。内容适合 C++ 开发者学习 string 类使用。
2025-07-17 12:38:31
585
原创 模板的初阶
本文介绍 C++ 模板技术:函数模板和类模板通过类型参数化实现代码复用,前者可自动或显式实例化,后者需显式指定类型。模板优先精确匹配,普通函数支持自动类型转换。以 swap 和 Stack 为例说明其减少重复代码的优势,及声明定义分离的特殊语法。模板是泛型编程核心,能提升效率。
2025-07-15 10:18:12
931
原创 C/C++内存管理
本文介绍C/C++内存管理知识,包括内存区域、变量存储位置、C语言动态内存函数、C++ new/delete机制、定位new表达式及内存泄漏防范等。
2025-07-12 00:46:25
919
原创 类和对象拓展——日期类
本文介绍了C++日期类的实现与优化方法。文章通过具体代码示例展示了日期类的完整实现过程,并分析了各种设计选择的优缺点,最后总结了const成员和友元函数的应用场景。
2025-07-09 16:58:27
747
原创 数据结构——堆
本文介绍了堆数据结构及其应用。首先讲解了树的基本概念和二叉树特性,包括满二叉树和完全二叉树。重点阐述了堆的实现方式,包括大顶堆和小顶堆的定义,以及堆的核心操作(插入、删除)使用的向上调整和向下调整算法。文章详细分析了堆排序的工作原理和TOP-K问题的解决方案,指出升序建大堆、降序建小堆的原理和简单介绍了一下文件的知识点。最后通过代码示例展示了堆的具体实现和应用场景,包括文件操作实现TOP-K查询。堆作为高效的数据结构,在优先队列和排序算法中具有重要价值。
2025-07-04 16:57:51
796
原创 数据结构——队列
本文介绍了队列(Queue)这一先进先出(FIFO)的线性数据结构,重点讲解了两种实现方式:链表队列和循环队列。文章还比较了栈与队列的异同,包括逻辑结构、存储方式和运算规则。通过具体代码示例展示了两种队列的实现方法,为理解队列这一基础数据结构提供了实用参考。
2025-06-24 18:49:34
1241
原创 数据结构——栈
本文介绍了栈的基本概念和两种实现方式:顺序栈和链栈。主要操作包括压栈(插入)和出栈(删除)。顺序栈采用数组实现,具有高效尾部操作的优势;链栈则使用链表结构实现。最后通过一道有效的括号匹配算法题展示了栈的实际应用。理解栈的实现原理有助于掌握更复杂的数据结构,并为算法学习打下基础。
2025-06-22 17:57:34
1074
原创 数据结构——双链表
本文介绍了带头双向循环链表的实现方法,通过图解和代码示例完成了动态节点申请、初始化、销毁、打印、判空、插入/删除(头尾操作和指定位置操作)以及查找等功能,并提供了完整的代码实现。
2025-06-01 14:56:16
1068
原创 使用快慢指针经典问题
本文介绍了快慢指针在链表问题中的经典应用。1找出链表中间节点;2返回链表倒数第n个节点;3判断链表是否有环;4找到环形链表的入口节点。且每道题都配有图解和代码实现。
2025-05-29 22:53:05
916
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅