logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【C++】二叉搜索树深度剖析——掌握key/key_value两类二叉搜索树

二叉搜索树是一种高效的数据结构,具有左子树值小于等于根节点、右子树值大于等于根节点的特性。其性能取决于树的高度,最优情况下时间复杂度为O(logN),最差退化为O(N)。文章详细介绍了二叉搜索树的实现,包括节点结构、插入、查找和删除操作,并区分了仅存储key和存储key-value两种应用场景。前者适用于存在性检查(如车牌识别),后者支持键值映射(如字典翻译)。针对删除操作的四种情况给出了具体解决

文章图片
#数据结构#算法#c++ +2
【C++】揭秘C++多态:虚函数与动态绑定的奥秘

本文系统讲解了C++多态的核心概念与实现原理。主要内容包括:1)多态分为编译时多态(函数重载/模板)和运行时多态(虚函数机制);2)实现运行时多态需要满足基类指针/引用调用虚函数、完成虚函数重写(函数名/参数/返回值相同)两个条件;3)重点分析了虚函数表机制,通过虚表指针实现动态绑定;4)介绍了纯虚函数与抽象类,以及override/final关键字的使用;5)对比了重载、重写和隐藏的区别。文章通

文章图片
#c++#开发语言#算法
【C++】STL关联式容器:set与map高效查找秘籍

本文系统讲解了STL中的关联式容器map与set,重点分析了其底层实现原理和使用方法。set是基于红黑树实现的有序去重容器,支持高效查找(O(logN))和自动排序,元素不可修改。map则是存储键值对的有序容器,同样基于红黑树实现,允许修改value但不允许修改key。文章详细介绍了它们的构造方法、增删查操作、迭代器特性,以及与multiset/multimap的区别。通过LeetCode例题展示

文章图片
#c++#开发语言#算法 +2
【C++】红黑树:比AVL树更实用的平衡二叉搜索树

红黑树是一种自平衡二叉搜索树,通过节点颜色(红/黑)和四条规则保证平衡:根节点为黑、红节点子节点必黑、任意路径黑节点数相同。其最长路径不超过最短路径的2倍,保证了O(logN)的查找效率。插入时需处理三种情况(变色、单旋+变色、双旋+变色),并通过旋转和变色维持平衡。验证时需检查颜色、根节点、红节点规则及路径黑节点数。删除操作较复杂,涉及多种情况处理。红黑树相比AVL树旋转次数更少,广泛应用于C+

文章图片
#算法#c++#开发语言 +1
【C++ 排序算法】十大经典排序算法原理深度解析

本文系统介绍了多种排序算法,分为比较排序和非比较排序两大类。重点讲解了插入排序(直接插入、希尔排序)、选择排序(直接选择、堆排序)、交换排序(冒泡、快速排序)和归并排序的原理、代码实现及性能分析,包括时间复杂度、空间复杂度和稳定性。特别对快速排序的Hoare法和前后指针法进行了详细说明,并提出了三数取中和小规模数据使用插入排序的优化策略。最后总结了各算法的关键特性对比表,指出不同算法在不同场景下的

文章图片
#排序算法#算法#数据结构 +2
【C++】stl_list深度剖析

本文深度剖析了C++中list的实现原理与使用方法。首先介绍了list作为双向带头循环链表的基本特性,对比了其与vector的迭代器差异。重点解析了list的核心接口,包括emplace_back与push_back的区别、splice操作特性及迭代器失效问题。随后通过源码重构的方式,详细讲解了list的三个核心类实现:节点类(ListNode)、迭代器类(ListIterator)和链表类(Li

文章图片
#c++#开发语言#算法 +2
【C++】stack&queue&deque&priority_queue深度剖析

本文介绍了容器适配器的概念及其应用,重点分析了stack、queue和priority_queue的实现原理。容器适配器是一种设计模式,通过转换接口实现不同容器的功能复用。stack和queue基于deque实现,具有灵活变换底层容器的特点。文章详细讲解了deque的双端队列结构及其优缺点,比较了vector和list的特性差异。最后介绍了优先级队列priority_queue的堆实现原理,以及仿

文章图片
#c++#开发语言#算法 +2
【C++】进阶篇——万字博文!一篇文章带你彻底搞懂继承

本文系统讲解了C++继承机制的核心概念与应用。主要内容包括:1)继承的定义与访问控制,分析不同继承方式下成员访问权限的变化;2)基类与派生类的转换规则,重点说明切片原理;3)派生类默认成员函数的实现要点,特别是构造、析构函数的调用顺序;4)多继承与菱形继承问题,详细阐述虚继承解决数据冗余的原理;5)继承与组合的对比,强调优先使用组合的设计原则。文章通过大量代码示例,深入浅出地讲解了继承机制中的关键

文章图片
#开发语言#c++#算法
【C++】二叉搜索树全面升级,深度剖析AVL树

AVL树是一种高度平衡的二叉搜索树,通过平衡因子(右子树高度减左子树高度)确保左右子树高度差不超过1,从而保证查找效率为O(logN)。其核心操作包括插入时的平衡因子更新和四种旋转(左单旋、右单旋、左右双旋、右左双旋)来维持平衡。插入时根据平衡因子变化决定是否旋转,旋转后需调整相关节点的平衡因子。AVL树的结构包含三叉链节点(左、右、父指针)和平衡因子字段。此外,还提供了查找和平衡检测功能,后者通

文章图片
#开发语言#数据结构#c++ +1
【C++】哈希表原理与实战:从冲突解决到性能优化

本文详细介绍了哈希表及其相关容器unordered_set和unordered_map的实现原理。主要内容包括: 哈希表基本概念:通过哈希函数建立关键字与存储位置的映射,实现高效查找。 哈希冲突处理方法: 开放地址法(线性探测/二次探测) 链地址法(哈希桶) 关键实现技术: 哈希函数设计(除留余数法、乘法散列法等) 负载因子控制 扩容策略(质数表扩容) 迭代器实现 unordered_set和un

文章图片
#哈希算法#散列表#算法 +4
    共 12 条
  • 1
  • 2
  • 请选择