
数据结构
文章平均质量分 58
kxwang_
【研究领域】
OCSSD | Zns SSD | KV Storage | SSD FTL算法|内核开发
【专业课程】
计算机体系结构 | 操作系统 | 嵌入式系统 | 数据结构 | 数据挖掘 | 深度学习 | 影像处理
【语言 】
英语 |韩语 |C|Python
展开
-
C++ 中使用 std::map 的一个示例
这段代码主要是为了演示 std::map 的基本用法,包括插入键值对、通过键访问值、检查特定键是否存在以及遍历整个映射并打印其内容。是一个容器,可以用来存储键值对,其中键是唯一的,每个键都映射到一个值。原创 2023-12-26 23:04:58 · 612 阅读 · 0 评论 -
使用C++ 标准库map关联式容器根绝键值查找文件是否存在
下面这段代码创建了一个简单的示例,演示了如何使用std::map存储和检索,代码中的注释已经对每一步进行了说明。原创 2023-12-23 00:06:42 · 531 阅读 · 0 评论 -
在vector向量中利用find 函数查找特定元素
当使用 std::find 函数在容器中查找特定元素时,如果找到该元素,将返回该元素的迭代器;如果找不到,将返回容器的 end 迭代器。原创 2023-12-21 10:00:11 · 5335 阅读 · 0 评论 -
在set容器中利用find()和end()查找元素的简单使用
在找到元素时返回指向该元素的迭代器,而在未找到时返回集合的。函数来打印元素并查找元素的简单代码示例。指向元素 3 的迭代器,而。指向集合的末尾迭代器。以下是利用容器set的。原创 2023-12-22 13:48:43 · 985 阅读 · 0 评论 -
关于多线程互斥,条件变量,上锁与解锁这篇就够了
【代码】关于多线程互斥,条件变量,上锁与解锁这篇就够了。原创 2023-03-30 05:08:46 · 564 阅读 · 1 评论 -
数据结构P4.4 二叉树的线索化
数据结构P4.4 二叉树的线索化线索二叉树二叉树的线索化中序线索化普通二叉树遍历存在的缺点1.每一次必须要从根节点出发进行遍历,而线性表的遍历可以从任何一个结点进行后续遍历。2.以中序遍历为例:给定树中一个结点的指针,在树中找到前驱和后继结点很不方便线索二叉树基于普通二叉树存在的不便之处,利用线索二叉树解决寻找树中某一结点的前驱和后继结点线索:指向前驱、后继的指针成为“线索”前驱线索:由左孩子指针充当后继线索:由右孩子指针充当中序线索二叉树:线索指向中序前驱、中序后继先序线索二叉树原创 2021-12-10 22:33:22 · 623 阅读 · 0 评论 -
数据结构P4.3:二叉树的遍历
数据结构P4.3:二叉树的遍历二叉树的先序遍历二叉树的中序遍历二叉树的后序遍历二叉树的层序遍历什么是遍历按照某种次序把所有结点都访问一边线性结构中:对于链表、队列都有从前往后或者从后往前的依次遍历树的结构中:基于树的层次特性确定的次序规则可以是层次遍历树的先序遍历:按照 根节点->左节点->右节点 顺序依次遍历树的中序遍历:按照 左节点->根节点->右节点 顺序依次遍历树的后序遍历:按照 左节点->右节点->根节点 顺序依次遍历二叉树的先序遍历遍历原创 2021-12-09 13:47:26 · 765 阅读 · 0 评论 -
数据结构P4.2:二叉树的基本概念和存储结构
数据结构P4.2:二叉树的基本概念二叉树的定义和基本术语特殊的二叉树斜树满二叉树完全二叉树二叉排序树平衡二叉树二叉树的性质二叉树的存储结构二叉树的顺序存储二叉树的链式存储二叉树的定义和基本术语定义:二叉树是n(n>=0)个结点的有限集合;当n=0时,为空二叉树;由一个根节点和两个互不相交的称为根的左子树和右子树组成。左子树和右子树又分别是一颗二叉树特点:1.每个结点至多只有两棵子树2.左右子树不能颠倒(二叉树是有序树)3.即使树中某个结点只有一棵树,也要区分它是左子树还是右子树。原创 2021-12-02 22:19:36 · 1321 阅读 · 0 评论 -
数据结构P4.1:树的基本概念
数据结构P4.1:树的基本概念树的定义和基本术语树的定义树形逻辑结构的应用结点之间的关系描述结点、树的属性描述有序树 和 无序树树的定义和基本术语树的定义定义:树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。组成:根节点root:树的结点包含一个数据元素和若干指向其子树的分支。叶子结点(Leaf)/终端结点:无后继结点。分支结点/非终端结点:有后继结点。边:连接分支结点子树(SubTree):当n>1时,其余结点可分为m(m>0)个互不交互的有限原创 2021-11-26 15:04:22 · 523 阅读 · 0 评论 -
数据结构P3:字符串
数据结构P3:字符串字符串的定义和基本操作字符串的定义和相关术语字符串的基本操作字符串的实现(顺序存储结构)顺序串的定义字符串的基本操作字符串的特殊操作字符串的实现(链式存储结构)字符串的模式匹配算法字符串的朴素模式匹配算法朴素模式匹配算法的实现字符串的定义和基本操作字符串的定义和相关术语串:即字符串(String),由零个或多个字符组成的有限序列子串:串中任意个连续的字符组成的子序列主串:包含子串的串字符在主串中的位置:字符在串中第一次出现的序号子串在主串中的位置:子串的第一个字符在主串中原创 2021-11-25 22:01:43 · 530 阅读 · 0 评论 -
数据结构P2.3:栈和队列的应用
数据结构P2.3:栈和队列的应用栈的应用栈在括号匹配中的应用栈在表达式求值中的应用栈在递归中的应用队列的应用栈的应用栈在括号匹配中的应用问题描述:左右括号匹配算法设计:遇到左括号就进行入栈操作,遇到右括号,就消耗掉左括号进行弹出栈顶元素操作匹配失败情况: 1.左括号无匹配 2.右括号无匹配 3.左右括号不匹配栈在表达式求值中的应用中缀、前缀、后缀表达式中缀:a+b前缀:+ab后缀:ab+用栈实现后缀表达式思路:后进先出1.从左往右扫描下一个元素,直到处理完所有元原创 2021-11-22 17:35:29 · 130 阅读 · 0 评论 -
数据结构P2.2:队列
数据结构P2.2:队列队列的基本概念顺序队列的实现(顺序存储结构)顺序队列的初始化顺序队列的入队操作顺序队列的出队操作顺序队列的读取队头元素链式队列的实现(链式存储结构)链式队列的初始化链式队列的入队操作链式队列的出队操作双端队列队列的基本概念定义:队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。顺序队列特点:会存在队满的情况,容量是不可扩展的线性表:具有相同数据类型的有限个数据元素序列栈:只允许在一端进行插入和删除的线性表(后进后出)队列:只允许在一端进行插入原创 2021-11-20 00:56:29 · 700 阅读 · 0 评论 -
数据结构P2.1:栈
数据结构P2.1:栈栈的基本概念顺序栈的实现(顺序存储结构)顺序栈的初始化进栈操作出栈操作读取栈顶元素链栈的实现(链式存储结构)链栈的初始化链栈的插入链栈的删除栈的基本概念栈(stack)的定义:只允许在一端进行插入或者删除操作的线性表栈的特点:后进先出栈顶(top):允许插入和删除的一端栈底(bottom):不允许插入和删除的一端空栈:不含任何数据元素的栈称为空栈逻辑结构:和普通线性表一样,元素之间是有位序的,插入和删除不同栈的基本操作–创销、增删改查:初始化栈:构建一个空栈S原创 2021-11-16 18:33:26 · 439 阅读 · 0 评论 -
数据结构P1.3: 顺序表和链表的比较
数据结构P1.3: 顺序表和链表的比较逻辑结构对比基本操作对比顺序表点击这里链表点击这里逻辑结构对比相同点:都属于线性表,都是线性结构的存储方式:顺序表:顺序存储特点:随机存取(数组索引)结点:只存储数据元素,存储密度高缺点:容量固定,大片连续空间分配不方便链表:链式存储特点:离散小空间分配方便,容量更改方便结点:数据元素和指向下一个结点的指针,存储密度低缺点:不支持随机存储,需要从表头依次遍历基本操作对比创建:顺序表:顺序存储初始化:预分配大片连续空间缺点:原创 2021-11-12 19:55:16 · 381 阅读 · 0 评论 -
数据结构P1.2: 线性表-链表
数据结构P2.2: 线性表-链表线性表:概念和基本操作线性表:单链表单链表的实现线性表:概念和基本操作线性表的逻辑结构:线性表是具有相同数据类型(每个数据元素所占的空间一样大)的n(n >=0)个数据元素的有限序列。直白理解:一条线串起了一个序列,上面的数据元素类型是相同的。各个数据元素之间有前后顺序。可以通过位序表示数据元素下图是一个长度为5的线性表 - 线性表的基本操作–创销、增删改查:初始化:构建一个空的线性表,分配内存空间销毁操作:销毁线性表并释放线性表所占的内存空间插入原创 2021-11-12 19:25:43 · 1157 阅读 · 0 评论 -
数据结构P1.1: 线性表-顺序表
数据结构P2: 线性表线性表概念和基本操作线性表概念和基本操作线性表是具有相同数据类型(每个数据元素所占的空间一样大)的n(n >=0)个数据元素的有限序列。比如表格线性表的基本操作:初始化表:构建一个空的线性表,分配内存空间销毁操作:销毁线性表并释放线性表所占的内存空间插入操作:在表中的第 i 个位置上插入指定的元素a删除操作:删除表中的第 i 个位置上元素,并用e返回删除元素的值按值查找:在表中寻找给定关键值的元素按位查找:获取表中第 i 个位置上元素的值...原创 2021-10-28 17:09:34 · 468 阅读 · 0 评论 -
数据结构前言:概念与算法
数据结构1:概念与算法数据结构数据元素数据结构三要素数据逻辑结构分类数据的运算物理结构(存储结构)数据结构数据是信息的载体,信息化的社会离不开数据数据结构是为了管理数据而存在的。数据元素数据结构三要素逻辑结构、数据运算、物理结构数据逻辑结构分类堆:穷人与富人、疫情高风险与低风险地区线性结构(1v1):排名树状结构(1v多):公司组织图、文件夹与文件网状结构(多v多):好友圈数据的运算结合逻辑结构、实际需求来定义基本运算运算的定义是针对逻辑结构的,而实现是针对存储结构的线性结构:原创 2021-09-25 10:34:55 · 168 阅读 · 0 评论 -
映射表,哈希表,和数组之间的关系
可能有一些朋友曾经和我一样搞不清啥是映射表,啥是哈希表,它们是不是就是数组?一分钟看完不迷茫映射表记录映射关系的表啥是映射:高中数学知识,在数学及相关的领域经常等同于函数。很多实际问题都可以利用映射的概念来求解。数组想一想,除了线性代数课堂以外,是不是在C语言的学习中接触到了?数组就是是编程语言提供的一种数据类型,即用一组连续的内存空间来存放数据,可以通过一个首地址,和一个数组下标,直接访问这组内存空间中的任意位置。编程是干嘛的?是解决问题的工具,所以数组也就是一种工具。哈希表哈希表原创 2021-02-25 19:35:52 · 593 阅读 · 0 评论