![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
The data structure
文章平均质量分 85
凛音Rinne
备考暂停更新,会更新考研相关
展开
-
【王道408数据结构】线性表习题
2. 顺序表逆置3. 删除所有值为x的元素4. 删除范围元素5. 删除范围元素(与第四题相似)6. 删除重复元素7. 合并两个有序数组8. 两个链表换位9. 二分查找10. [2010统考真题]循环移动11. [2011统考真题]找两个顺序表合并的中位数12. [2013统考真题]出现超过一半的元素13. [2018统考真题] 数组未出现最小正整数14. [2020统考真题]三元数组最小距离...原创 2022-06-13 14:15:36 · 477 阅读 · 2 评论 -
【数据结构】二叉树遍历
二叉树遍历本篇针对链表类型的二叉树的遍历,数组类型的二叉树遍历就等于遍历数组文章目录二叉树遍历一、遍历规则1. 前序遍历(Preorder Traversal)2. 中序遍历(Inorder Traversal)3. 后序遍历(Postorder Traversal)二、普通二叉树遍历1. 二叉树节点定义2. 二叉树初始化3. 测试前序中序后序遍历4. 二叉树节点个数5. 二叉树叶子节点个数6. 二叉树第k层节点个数7. 二叉树深度/高度8. 二叉树查找值为x的节点三、层序遍历1. 创建队列2. 遍原创 2021-11-12 11:57:33 · 4490 阅读 · 28 评论 -
【数据结构】堆排序
堆排序因为大堆和小堆只能知道最大元素和最小元素而TopK也只能找出前k个大/小的元素这一篇,同时满足上面两个求本篇有大量内容在前两篇文章基础上:【数据结构】TopK问题_Rinne’s blog-CSDN博客【数据结构】堆_Rinne’s blog-CSDN博客以及很多代码的接口/函数之前写过不再重复:堆 · 凛音Rinne - 码云 - 开源中国 (gitee.com)文章目录堆排序一、思路1. 建小堆2. 建大堆3. 测试代码二、证明时间复杂度1. 建堆过程2.原创 2021-11-10 12:03:11 · 1032 阅读 · 26 评论 -
【数据结构】TopK问题
TopK问题gitee上有更详尽的代码:堆 + TopK代码文章目录TopK问题一、问题分析1. 方法一2. 方法二3. 方法三二、TopK实现1. 前k个数的小堆2. n-k个数和根去比较3. 打印堆三、测试topk问题就是取n个数据中,找出最大/最小的前k个数一、问题分析1. 方法一对n个数据进行排序,再取出前k个元素时间复杂度:O(N * logN)2. 方法二将n个数据依次插入大堆,然后pop堆的根 k 次时间复杂度:O(N + k * logN)设有n原创 2021-11-08 23:06:12 · 1482 阅读 · 14 评论 -
【数据结构】堆
堆文章目录堆一、堆的概念二、堆的实现1. 定义节点2. 堆的初始化3. 堆的销毁4. 堆的插入5. 堆的删除一、堆的概念堆是二叉树的一种特殊情况一个堆中的所有节点的值总是不大于或不小于其父节点的值堆是一棵完全二叉树。堆分为大堆和小堆大堆:根节点最大的堆叫做最大堆或大根堆小堆:根节点最小的堆叫做最小堆或小根堆普通的二叉树是不适合用数组来存储,因为可能会因为数据不连续而导致存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。又因为上一篇文章中提出【数据结构】原创 2021-11-06 16:20:12 · 1356 阅读 · 24 评论 -
【数据结构】二叉树的定义以及性质
二叉树文章目录二叉树一、树1.树的定义2. 树的概念(1) 节点的度(2) 叶节点(终端节点)(3) 分支节点(非终端节点)(4) 父节点(双亲节点)(5) 子节点(孩子节点)(6) 兄弟节点(7) 树的度(8) 节点的层次(9) 树的高度(深度)(10) 堂兄弟节点二、二叉树1. 树的表示2. 二叉树3. 二叉树的种类(1) 满二叉树(2) 完全二叉树4. 二叉树的性质二叉树在了解二叉树之前,专业外的人,比如我,二叉树的名称早就听说过,在了解二叉树之前,应当先去了解树的几个概念,毕竟,二叉树是普通原创 2021-11-05 19:17:59 · 1399 阅读 · 18 评论 -
【数据结构】队列
队列笔记+源码自取:笔记:队列笔记源码:队列源码一、为什么要学习队列在排队系统中,顾客去拿自己号码顺序,先拿到的一定先被叫号。这种先进先出FIFO(First In First Out)的模式被称为队列队列顾名思义,排队,按顺序进入,按顺序出去只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表进行插入操作的一端称为队尾,进行删除操作的一端称为队头二、队列的接口在这种线性表的类型,可以是定义数组来实现,也可以定义链表来实现。二者如何抉择?因为涉及到元素移动,显原创 2021-11-01 21:08:23 · 723 阅读 · 16 评论 -
【数据结构】栈
栈文章目录栈一、栈是什么,为什么使用栈二、栈的接口1. 初始化栈2. 进栈3. 销毁栈4. 出栈5. 找到栈顶的元素一、栈是什么,为什么使用栈在内存的存储中了解到压栈和出栈,这种类似的数据结构中也有栈是限定仅在表尾进行插入或者删除操作的线性表。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则图片即可解释,凡是具有LIFO特征的问题都可以运用栈的数据结构和思维来求解。压栈:栈的插入操作叫做进栈/压栈/入栈,进入的数据在栈顶出栈:栈的删除操作叫做出栈。删除的原创 2021-10-30 13:31:05 · 1015 阅读 · 18 评论 -
【数据结构】有头双向循环链表,多图详解,笔记和源码已上传至gitee
有头双向循环链表????????笔记和源码自取:????笔记地址????源码地址文章目录有头双向循环链表1. 初始化链表2. 链表尾插3. 链表头插4. 链表尾删5. 链表头删6. 链表中间插入7. 链表中间删除最近接触了单链表,也做了很多题目,但单链表的增删查改真的很麻烦????又最近学习了双向链表,尤其是 有哨兵位头节点的双向循环链表写起来和用起来真的很爽!!????1. 初始化链表我们需要一个哨兵位头节点便于尾插头插????代码如下://初始化链表LTNode*原创 2021-10-29 18:32:15 · 266 阅读 · 8 评论 -
【数据结构】有无哨兵头节点的单链表,便利头插尾插,以LeetCode两道题为例
有无哨兵头节点的单链表❤️❤️ 笔记指路gitee:❤️:hear有无哨兵节点单链表❤️❤️ 欢迎 白嫖!!????????????????❤️❤️文章目录有无哨兵头节点的单链表一、什么是哨兵节点?二、无哨兵节点三、有哨兵节点????????最近在做题的过程中,遇到不同的单链表题目,在这些题目中,如果设置一个哨兵头节点可能会带来一定的便利在之前的单链表增删查改中就发现,头插其实比尾插简单????????文章指路:【数据结构】单链表的增删查改,附代码+笔记gitee自取_Rinne’s bl原创 2021-10-25 20:57:06 · 240 阅读 · 11 评论 -
【数据结构】单链表的增删查改,附代码+笔记gitee自取
单链表gitee自取:源代码+工程文件单链表笔记文章目录单链表导言一、链表的概念及其结构1. 概念2. 结构特点二、单链表的增删查改1. 单链表主体2. 单链表申请节点3. 单链表打印4. 单链表尾插5. 单链表头插6. 单链表尾删7. 单链表头删8. 单链表查找9. 单链表在pos之后插入10. 单链表在pos之前插入11. 单链表在pos之后删除12. 单链表在pos位子值删除13. 销毁单链表导言虽然顺序表一定程度上解决了定长数组带来的空间浪费但是在我们约定顺序表以2倍的原创 2021-10-23 22:19:47 · 462 阅读 · 8 评论 -
【数据结构】线性表与顺序表,含顺序表的各个插口代码(笔记在gitee自取)
线性表与顺序表????顺序表和之前的通讯录有些相似????通讯录源码地址:通讯录源码????通讯录文章:通讯录动态内存+文件操作保存????顺序表源码:顺序表源码????顺序表笔记:顺序表笔记文章目录线性表与顺序表一、线性表二、顺序表1. 静态顺序表2. 动态顺序表2.1 定义一个动态的顺序表2.2 初始化顺序表2.3 顺序表开辟内存2.4 顺序表尾插2.5 打印顺序表2.6 顺序表头插2.7 顺序表尾删2.8 顺序表头删2.9 顺序表查找3.0 顺序表中间插入3.1 顺序表中间删除3.2原创 2021-10-17 11:37:40 · 337 阅读 · 8 评论