![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 80
Protein_zmm
记录个人学习经历~~~
展开
-
[数据结构]图(上)
数据结构图论的基本概念、存储结构、遍历以及代码实现原创 2022-10-14 11:41:45 · 247 阅读 · 0 评论 -
[数据结构]哈希
数据结构的哈希表相关概念及其实现原创 2022-09-10 17:50:29 · 374 阅读 · 0 评论 -
[数据结构]红黑树图解及其代码实现
红黑树插入、旋转、调整等分析图解及其代码实现原创 2022-08-16 19:12:37 · 570 阅读 · 0 评论 -
[数据结构]AVL树
AVL树的插入及其四种旋转情况分析及其代码实现原创 2022-08-15 11:31:10 · 333 阅读 · 2 评论 -
[数据结构C++实现]二叉搜索树
二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:三、二叉搜索树实现3.1 非递归版本插入删除没有孩子的节点只有一个孩子的节点有两个孩子的节点并且最右节点(一定右为空)或者最左节点(一定左为空)删除只有一个孩子节点的情况:父亲会不会为空?——会,只有根节点父亲会为空让root指向cur的孩子有两个孩子的节点:要么找右子树最左节点或者是左子树最右节点若删除5:若删除7:不要给空:,不然min父节点为空,之后又会出错3.2 递归版本递归可能会爆栈原创 2022-08-04 15:55:25 · 762 阅读 · 2 评论 -
[数据结构]二叉树经典例题
二叉树的Leetcode及牛客网部分经典题目原创 2022-07-14 23:01:15 · 1478 阅读 · 1 评论 -
[数据结构]树与二叉树
树与二叉树详解,附带代码实现,经典例题等原创 2022-07-14 22:22:11 · 302 阅读 · 0 评论 -
[数据结构]堆
堆是一颗完全二叉树 适用于数组存储大堆:树中一个树及其子树中,父亲都大于等于孩子则称为大堆。将根节点最大的堆叫做最大堆或大根堆。小堆:树中一个树及其子树中,父亲都小于等于孩子则称为小堆。将根节点最小的堆叫做最小堆或小根堆。堆的性质:堆中某个节点的值总是不大于或不小于其父节点的值;小堆的逻辑结构与存储结构(物理结构):逻辑结构:我们想象出来的 – 完全二叉树物理结构:实际在内存中存储的结构 – 数组堆不一定是有序的(左孩子可以小于右孩子,也可以大于右孩子)插入数据x=8时,可以直接插入在后面原创 2022-07-13 19:06:52 · 332 阅读 · 1 评论 -
[数据结构]栈与队列经典例题
括号匹配问题、用队列实现栈、用栈实现队列、设计循环队列原创 2022-07-12 14:05:00 · 354 阅读 · 0 评论 -
[数据结构]栈与队列的实现
栈和队列的模拟实现原创 2022-07-11 14:05:13 · 208 阅读 · 0 评论 -
链表Leetcode/牛客习题讲解(附带双指针,带环链表的拓展及证明)
移除链表元素给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]思路:定义一个cur指向当前位置的指针,prev为cur前一个指针,cur一直往后遍历,如果cur指向的值为val,就改变指向struct ListNode* removeElements(struct ListNode* head, int val原创 2022-04-05 10:10:05 · 292 阅读 · 0 评论 -
单链表的实现
在上一次中,讲解了顺序表,但是顺序表也有一些缺陷,针对顺序表的缺陷发明了链表顺序表的缺陷:1、空间不够需要增容,增容有代价2、空间满了要扩二倍,如果没有有效利用会造成大量的空间浪费3、在头部或者中间插入数据需要依次向后挪动数据,效率低链表:物理存储上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针依次链接实现的特点:1、链式结构在逻辑上连续,但在物理上不一定连续2、节点都是在堆上申请出来的3、两次申请的空间可能连续,也可能不连续优点:1、按需申请空间,不用了就释放2、头原创 2022-02-18 15:22:29 · 369 阅读 · 0 评论 -
顺序表Leetcode习题详解
点击即可跳转:旋转数组给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]方法1:设i为数组的下标,用新数组存储原数组的(i+k) % n的值即可,因为整个为一个环 0-n-1的循环void rotate(int原创 2022-02-18 15:13:09 · 89 阅读 · 0 评论 -
顺序表详解
顺序表线性表在此之前首先先介绍一下线性表的概念1、线性表:是具有n个相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表,链表,队列,字符串等2、线性表在逻辑上是线性结构,也就是连续的一条直线。但是在物理上存储时,通常是以数组和链式结构的形式进行存储。顺序表顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般分为静态顺序表与动态顺序表静态顺序表:优点:如果空间满了就不让其原创 2021-10-23 23:30:05 · 192 阅读 · 1 评论