数据结构
文章平均质量分 94
三分苦
hello world
展开
-
【 C++ 】用一个哈希表封装unordered_map和unordered_set
目录1、哈希表源代码2、哈希函数模板参数的控制3、对上层容器构建仿函数便于后续映射4、部分类型无法取模问题5、哈希表底层迭代器的实现框架++运算符重载!= 和 == 运算符重载* 和 -> 运算符重载6、哈希表的迭代器相关函数(begin和end)7、哈希表的优化(素数表)8、unordered_map的插入和[ ]运算符重载9、封装后源代码哈希表源代码链接原创 2022-10-01 17:45:08 · 1098 阅读 · 0 评论 -
【 C++ 】哈希表底层结构剖析
目录1、unordered系列底层结构2、哈希概念3、哈希冲突4、哈希函数(直接定址 + 除留余数)5、哈希冲突解决闭散列(线性探测 + 二次探测)开散列原创 2022-09-24 15:55:49 · 2002 阅读 · 2 评论 -
【 C++ 】闭散列哈希表的模拟实现
目录1、框架2、哈希节点状态的类3、哈希表的扩容4、构建仿函数把所有数据类型转换为整型并特化5、哈希表的插入6、哈希表的查找7、哈希表的删除8、源码链接原创 2022-09-24 16:02:51 · 843 阅读 · 0 评论 -
【 C++ 】开散列哈希桶的模拟实现
目录1、框架2、构建仿函数把数据类型转为整型并特化3、哈希桶的插入4、哈希桶的查找5、哈希桶的删除6、源码链接原创 2022-09-24 16:08:08 · 796 阅读 · 0 评论 -
【 C++ 】红黑树
目录1、红黑树的概念2、红黑树的性质3、红黑树节点的定义4、红黑树结构5、红黑树的插入操作6、红黑树的验证7、红黑树的删除8、红黑树与AVL树的比较9、红黑树的应用10、源码链接...原创 2022-09-04 20:38:55 · 1129 阅读 · 3 评论 -
【 C++ 】AVL树
目录1、底层结构2、AVL树的概念3、AVL树节点的定义4、基本框架5、AVL树的插入6、AVL树的旋转左单旋右单旋左右双旋右左双旋7、AVL树的验证8、AVL树的查找9、AVL树的删除(了解)10、AVL树的性能11、源码链接.........原创 2022-09-04 20:37:20 · 1299 阅读 · 0 评论 -
【 C++ 】二叉搜索树
目录1、二叉搜索树的概念2、二叉搜索树的实现①、结点类②、二叉搜索树的类 2.1、默认成员函数 构造函数拷贝构造函数赋值运算符重载函数析构函数 2.2、中序遍历 2.3、Insert插入函数............原创 2022-09-03 15:56:40 · 1460 阅读 · 0 评论 -
< 数据结构 > 八大排序
常见算法排序概览1、直接插入排序直接插入排序特性总结2、希尔排序希尔排序特性总结3、选择排序选择排序特性总结4、堆排序堆排序特性总结5、冒泡排序冒泡排序特性总结6、快速排序hoare法挖坑法前后指针法快排特性总结快排优化三数取中小区间优化原创 2022-05-04 14:11:35 · 4833 阅读 · 88 评论 -
手撕二叉树oj练习
目录1、单值二叉树2、检查两棵树是否相同3、对称二叉树4、翻转二叉树5、二叉树前序遍历6、二叉树中序遍历7、二叉树后续遍历8、另一棵树的子树9、二叉树的构建及遍历1、单值二叉树链接直达:单值二叉树题目:思路: 递归+分治单值二叉树,顾名思义,就是说所有节点的值val是相同的,这里我们采用分治的思想。具体操作过程是将每个节点都去和根节点比较,如果存在不等,就返回false。如果每个根和其左右孩子都相等,那么我们就可以断定此二叉树必是单值二叉树,...原创 2022-04-29 23:54:54 · 994 阅读 · 68 评论 -
< 数据结构 > w字拿捏链式二叉树
1、为何使用链式二叉树2、何为链式二叉树3、基本接口创建二叉链结构手动构建一颗树4、二叉树的遍历前序遍历中序遍历后续遍历层序遍历5、经典问题结点个数叶结点个数第K层结点个数二叉树的深度二叉树查找值为x的节点二叉树的销毁判断二叉树是否是完原创 2022-04-22 16:35:10 · 1756 阅读 · 86 评论 -
< 数据结构 > 堆的实现
目录1、前言堆的概念堆的结构2、堆的实现2.1、准备工作创建堆结构初始化堆堆的打印堆的销毁建堆时间复杂度2.2、堆调整堆的交换堆向上调整算法堆向下调整算法2.3、核心功能堆的插入堆的删除...原创 2022-04-13 13:11:23 · 2565 阅读 · 108 评论 -
< 数据结构 > 堆的应用 --- 堆排序和Topk问题
目录1、堆排序法一:自己写堆进行排序时间复杂度分析法二:直接对数组建堆①、向上调整建堆②、向下调整建堆向上建堆和向下建堆熟优?升序能否建小堆?排序(建大堆)2、TopK问题何为Topk?实现过程1、堆排序假如我们有一串乱序数组,如...原创 2022-04-18 16:07:17 · 1452 阅读 · 81 评论 -
栈和队列经典面试题
目录1、括号匹配问题2、用队列实现栈3、用栈实现队列4、设计循环队列1、括号匹配问题链接直达:有效的括号题目:思路:2、用队列实现栈3、用栈实现队列4、设计循环队列...原创 2022-04-07 15:46:37 · 3197 阅读 · 117 评论 -
< 数据结构 > 队列的实现
前言队列的概念队结的结构队列的应用场景队列的实现创建队列结构队列初始化队列销毁入队列出队列队列判空获取队列元素个数获取队列头部元素获取队列尾部元素总代码Queue.h 文件Queue.c 文件Test.c原创 2022-04-05 13:10:18 · 2858 阅读 · 105 评论 -
< 数据结构 > 树与二叉树
目录1、树的概念及结构树的概念树的专有名词树的表示树在实际中的运用2、二叉树的概念及结构概念现实中的二叉树特殊的二叉树二叉树的性质二叉树的存储结构1、树的概念及结构树的概念现实中的树:数据结构中的树:树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集...原创 2022-04-11 11:15:50 · 5802 阅读 · 145 评论 -
< 数据结构 > 单向环形链表
1、例题引入2、何为带环链表3、题解思路4、拓展问题 (1)slow一次走1步,fast一次走2步,一定能追上吗? (2)slow一次走1步,fast一次走3步,能追上吗?fast一次走4步呢?n步呢? (3)链表环的入口点在哪呢?原创 2022-03-29 13:49:31 · 2760 阅读 · 102 评论 -
< 数据结构 > 栈的实现
前言 栈的概念 栈的结构栈的实现 创建栈结构 初始化栈 销毁栈 入栈 出栈 获取栈顶元素 获取栈中有效元素个数 检测栈是否为空总代码 Stack.h 文件 Stack.c 文件 Test.c 文件原创 2022-04-03 16:14:03 · 2369 阅读 · 102 评论 -
< 数据结构 > 双向带头循环链表
目录一、概念二、必备工作 2.1、创建双向链表结构 2.2、初始化链表 2.3、动态申请节点 2.4、打印链表 2.5、销毁链表其它功能三、增删查改3.1、插入数据 尾插 头插 在pos节点前插入数据3.2、删除数据 尾删 头删 删除pos处节点数据3.3、查找数据3.4、修...原创 2022-04-01 11:31:28 · 2938 阅读 · 120 评论 -
LeetCode每日一刷 --- 手撕单链表习题(2)
目录1、链表的回文结构2、相交链表3、复制带随机指针的链表1、链表的回文结构链接直达:链表的回文结构题目:思路:找中间节点再逆置2、相交链表3、复制带随机指针的链表...原创 2022-03-26 13:18:54 · 2945 阅读 · 69 评论 -
LeetCode每日一刷 --- 手撕单链表习题(1)
目录1、移除链表元素2、反转链表3、链表的中间节点4、链表中倒数第k个节点5、合并两个有序链表6、链表分割1、移除链表元素链接直达:移除链表元素题目:思路:此题要综合考虑多种情况,常规情况就如同示例1,有多个节点,并且val不连续,但是非常规呢?当val连续呢?当头部就是val呢?所以要分类讨论常规情况:需要定义两个指针prev和cur,cur指向第一个数据,prev指向cur的前一个。依次遍历cur指向的数据是否为val,若是,则把prev的下一个.原创 2022-03-24 13:37:02 · 7445 阅读 · 74 评论 -
LeetCode每日一刷 --- 拿捏顺序表经典面试题
目录1、移除元素2、删除有序数组中的重复项3、合并两个有序数组1、移除元素链接直达:https://leetcode-cn.com/problems/remove-element/题目:思路:法一:依次挪动数据进行覆盖从第一个数据开始进行依次遍历,如同示例1,依次遍历数组,找到移除的元素2就把后面的数据往前挪动进行覆盖,如图所示:此法有个缺陷,题目中明确指出使用空间复杂度O(1)的方法解决此问题,而此法的空间复杂度刚好为O(1),可以解决,不过考虑周全些,时.原创 2022-03-22 12:20:42 · 1844 阅读 · 82 评论 -
<数据结构>单向链表
目录一、对比顺序表二、概念三、必备工作 3.1、创建单链表 3.2、动态申请节点 3.3、单链表打印 3.4、销毁单链表四、增删查改 4.1、插入数据 头插 尾插 在pos位置后插入x 在pos位置前插入x 4.2、删除数据 头...原创 2022-03-17 11:15:22 · 1680 阅读 · 61 评论 -
<数据结构> 顺序表
目录一、顺序表介绍二、准备工作 1、创建顺序表 2、初始化顺序表 3、检测是否需要扩容 4、销毁顺序表 5、打印顺序表三、四大功能 1、增加数据 头插 尾插 指定下标插入 2、删除数据 头删 ...原创 2022-03-13 18:24:21 · 10044 阅读 · 81 评论 -
<数据结构>时间复杂度及空间复杂度
目录一、概念 1.1、算法效率 1.2、时间复杂度 1.3、空间复杂度二、计算 2.1、大O的渐进表示法 2.2、时间复杂度计算 例题: 2.3、空间复杂度计算 例题三、有复杂度要求的习题一、概念1.1、算法效率算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作...原创 2022-03-09 07:00:00 · 1766 阅读 · 89 评论