logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

数据结构初阶——哈希表的实现(C++)

哈希表是一种高效的数据结构,通过哈希函数将关键码映射到存储位置。文章详细介绍了哈希冲突的两种解决方法:闭散列(开放地址法)和开散列(链地址法)。闭散列采用线性探测或二次探测解决冲突,而开散列通过链表连接冲突元素。文中还提供了两种方法的实现代码,包括插入、查找和删除操作。特别指出扩容时应选择素数作为表大小以减少冲突,并给出了素数扩容的实现方案。最后通过实验数据对比,验证了素数表大小在减少哈希冲突方面

文章图片
#哈希算法#算法#散列表
数据结构初阶——红黑树的实现(C++)

红黑树是一种近似平衡的二叉搜索树,通过红黑节点和特定规则维持平衡。其核心性质包括:根节点为黑色、红色节点的子节点必须为黑色、从任一节点到叶节点的路径包含相同数量黑色节点。实现时默认新节点为红色,插入后通过变色和旋转(单旋或双旋)调整平衡。与严格平衡的AVL树相比,红黑树牺牲部分平衡性换取更高效的插入删除操作,实际应用更广泛。验证红黑树需检查二叉搜索树性质及红黑特性。红黑树整体实现包含节点定义、插入

文章图片
#数据结构#c++#开发语言
C++进阶(1)——继承

本文系统介绍了C++中的继承机制,主要内容包括: 继承的基本概念和语法,通过学生/教师示例展示派生类继承基类成员的过程; 继承方式对访问权限的影响,详细说明public/protected/private继承的差异; 继承中的特殊处理:默认成员函数、作用域隐藏规则、友元关系、静态成员特性; 多继承与菱形继承问题,重点讲解虚拟继承解决二义性和数据冗余的原理; 继承(is-a)与组合(has-a)的对

文章图片
#c++#算法#开发语言
C++基础(15)——关联式容器的使用和介绍(set和map)

本文介绍了C++ STL中的关联式容器,重点讲解了set和map两大类容器及其变体(multiset/multimap)。关联式容器通过键值对存储数据,提供高效查找功能。文章详细阐述了set的基本概念和使用方法,包括插入、删除、查找等操作,并对比了set与multiset的区别(是否允许键值重复)。对于map容器,重点介绍了键值对的定义、插入方式(匿名对象和make_pair)、查找删除操作以及[

文章图片
#c++#开发语言
C++进阶(6)——lambda表达式

本文介绍了C++中lambda表达式的基本概念、语法规则、实现原理及具体应用。lambda表达式是一种匿名函数对象,可定义在函数内部,支持值/引用捕捉上下文变量。其语法包含捕捉列表、参数列表、返回类型和函数体。捕捉方式包括显式/隐式捕捉及混合捕捉,需注意作用域限制和const修饰特性。lambda底层通过编译器生成唯一类名的仿函数实现,其参数、返回值和函数体对应仿函数的operator()成员。实

文章图片
#c++#开发语言
C++基础(13)——list类的模拟实现

本文摘要:本文详细介绍了如何模拟实现一个C++ STL中的list容器。主要内容包括:1. 节点结构体list_node的实现,包含数据成员和前驱/后继指针;2. 迭代器结构体list_iterator的实现,通过运算符重载实现对链表节点的访问和遍历;3. list类的主要功能实现,包括构造函数、析构函数、拷贝控制函数、迭代器相关函数以及插入删除等操作。特别强调了带头双向循环链表的结构特点,以及如

文章图片
#windows#网络#c++ +1
C++基础(14)——stack和queue类的使用和模拟实现

本文介绍了如何基于双端队列(deque)实现栈(stack)和队列(queue)这两种容器适配器。通过模板类封装,栈使用deque的push_back()、pop_back()等操作实现其LIFO特性,队列则利用push_back()和pop_front()实现FIFO特性。两种结构都提供了基本的元素操作接口(如push/pop)、访问方法(top/front/back)以及容量查询(size/e

文章图片
#c++#开发语言
C++基础(14)—— priority_queue的使用和模拟实现

本文介绍了优先级队列(堆)的使用及其模拟实现。优先级队列本质是通过vector容器封装,利用堆算法维护元素优先级顺序。文章详细讲解了priority_queue的三种定义方式(大根堆、小根堆、默认方式),并展示了基本操作函数(push、pop、top等)的使用示例。重点分析了堆的两个核心算法:向上调整(插入元素时维护堆结构)和向下调整(删除元素时维护堆结构),通过图示和代码说明了算法流程。最后给出

文章图片
#c++#开发语言
C++基础(15)——关联式容器的使用和介绍(set和map)

本文介绍了C++ STL中的关联式容器,重点讲解了set和map两大类容器及其变体(multiset/multimap)。关联式容器通过键值对存储数据,提供高效查找功能。文章详细阐述了set的基本概念和使用方法,包括插入、删除、查找等操作,并对比了set与multiset的区别(是否允许键值重复)。对于map容器,重点介绍了键值对的定义、插入方式(匿名对象和make_pair)、查找删除操作以及[

文章图片
#c++#开发语言
    共 32 条
  • 1
  • 2
  • 3
  • 4
  • 请选择