logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++之二叉搜索树的模拟

本文介绍了二叉搜索树(BST)的C++实现方法。首先定义了BST节点结构,包含键值、左右子节点指针和构造函数。然后详细讲解了BST的核心操作:插入(递归和非递归实现)、查找、删除(处理叶子节点、单子节点和双子节点三种情况)和中序遍历。针对删除操作特别分析了处理根节点时的特殊情况。接着扩展实现了键值对(key-value)版本的BST,支持查找返回节点指针以访问value值。所有操作都通过模板类实现

文章图片
#c++#算法
C++之红黑树

红黑树摘要:红黑树是一种自平衡二叉搜索树,通过节点染色(红/黑)和5条规则维持平衡,确保最长路径不超过最短路径的2倍,保证操作时间复杂度稳定在O(log n)。其核心特性包括:根节点为黑、红节点子节点必为黑、任意路径黑节点数相同。插入时默认新增红节点,通过变色和旋转(左旋/右旋)处理冲突,分三种情况调整:叔节点红则变色,叔节点黑则旋转后变色。实现上需维护父指针和颜色标记,旋转后需调整节点颜色保持黑

文章图片
#c++#开发语言
C++之set,map的使用

摘要:本文系统讲解了STL中set和map容器的核心用法。set作为有序不重复集合,支持插入、删除、查找等操作,具有自动去重和排序特性。map作为键值对容器,通过pair实现数据存储,支持[]运算符快速访问。文章详细介绍了两种容器的初始化、迭代器使用、查找(count/find)、删除(erase)等操作,并对比了set与multiset、map与multimap的关键区别——后者允许键值重复。特

文章图片
#数据结构
C++之模板进阶

本文深入探讨了C++模板编程的核心概念。首先分析了静态栈内存分配问题,引出非类型模板参数的应用。重点讲解了模板特化的实现方式,包括函数模板特化和类模板特化(全特化和偏特化),通过具体代码示例展示了特化的使用场景和语法规则。文章还详细讨论了模板参数中的const修饰符对指针的影响,比较了三种不同const修饰方式的区别。最后深入剖析了模板声明与定义分离导致编译错误的原因,从预处理、编译、链接等环节解

文章图片
#c++#开发语言
C++之AVLTree

AVL树是一种高度平衡的二叉搜索树,通过平衡因子(右子树高度-左子树高度)确保任意节点的平衡因子绝对值不超过1。其核心操作包括插入时的平衡因子更新和四种旋转调整(右单旋、左单旋、左右双旋、右左双旋)。插入时需递归更新祖先节点的平衡因子,若出现失衡(|bf|=2)则通过旋转恢复平衡。旋转操作需处理节点指针关系、父节点更新及平衡因子重置。AVL树通过严格平衡控制,将操作时间复杂度优化至O(log n)

文章图片
#c++#开发语言
Linux之进程(四)--优先级,进程切换

摘要: 进程优先级与权限是操作系统的核心调度机制。权限(如root与普通用户)决定进程能否执行操作(如修改文件),而优先级(PRI/NI值)决定CPU资源的分配顺序,确保重要任务(如交互程序)优先响应。Linux通过Nice值(-20~19)调整优先级,普通用户仅能降低优先级(0→19),root可自由调整以防止资源独占。进程切换涉及CPU上下文保存与恢复(寄存器数据),实现多任务并发。分时系统通

文章图片
#linux#运维#服务器
Linux之进程(二)

fork创建一个新的进程是以父进程为原型,很多内容都是父进程的,当然代码,数据是从磁盘拷贝到内存,如果再拷贝一次是很消耗资源的,,一般情况是代码和数据是相同的,但是要是要对数据进行修改,两个进程就会相互影响,我们应该要保持进程的独立性,数据和代码就要单独再拷贝出来一份。给子进程返回0,主要是判断子进程是否创建成功,给父进程返回子进程的pid,是为了更好的管理子进程,比如使用wait()/waitp

文章图片
#linux#运维#服务器
Linux之进程(一)

本文首先介绍了冯诺依曼体系计算机的基本结构,包括输入/输出设备、CPU和内存的作用,重点阐述了引入内存的原因:解决CPU与I/O设备效率不匹配问题,通过层级存储结构和局部性原理提升整体性能。其次,解释了操作系统的必要性:1)作为软硬件管理的中介,采用"先描述(数据结构)后组织(管理机制)"的方式统一管理资源;2)为用户和应用程序提供安全稳定的运行环境,通过封装底层硬件操作(类比

文章图片
#linux#运维#服务器
Linux之进程(六)--环境变量

环境变量是操作系统中存储配置信息的全局变量,用于指引系统查找可执行文件路径等。例如PATH变量记录了系统搜索命令的目录,当输入命令时系统会按PATH中的路径顺序查找可执行文件。若找不到则报错"command not found"。可通过export临时修改PATH,或写入.bashrc永久生效。env命令可查看所有环境变量,getenv()函数可获取特定变量值。环境变量还包括U

文章图片
#linux#运维#服务器
C++之set,map的使用

摘要:本文系统讲解了STL中set和map容器的核心用法。set作为有序不重复集合,支持插入、删除、查找等操作,具有自动去重和排序特性。map作为键值对容器,通过pair实现数据存储,支持[]运算符快速访问。文章详细介绍了两种容器的初始化、迭代器使用、查找(count/find)、删除(erase)等操作,并对比了set与multiset、map与multimap的关键区别——后者允许键值重复。特

文章图片
#数据结构
到底了