![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 85
数据结构相关代码
~小火苗
这个作者很懒,什么都没留下…
展开
-
栈 和 队列
使用数组来实现循环队列,因为数组的存储空间是连续的可以通过下标访问,容易找到某一个元素它的前一个元素,而队列需要循环找前一个元素,栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的。队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数。实际中我们有时还会使用一种队列叫循环队列。如操作系统课程讲解生产者消费者模型。时可以就会使用循环队列。环形队列可以使用数组实现,也可以使用循环链表实现。组头上出数据,效率会比较低。原创 2023-02-17 16:21:35 · 73 阅读 · 0 评论 -
map和set
根据应用场景的不桶,STL总共实现了两种不同结构的管理式容器:树型结构与哈希结构。树型结构的关联式容器主要有四种这四种容器的共同点是:使用平衡搜索树(即红黑树)作为其底层结果,容器中的元素是一个有序的序列。下面一依次介绍每一个容器。set是按照一定次序存储元素的容器在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。原创 2022-12-25 14:10:03 · 268 阅读 · 0 评论 -
二叉树进阶
对有n个结点的二叉搜索树,若每个元素查找的概率相等,则二叉搜索树平均查找长度是结点在二叉搜索树的深度的函数,即结点越深,则比较次数越多。那能否进行改进,不论按照什么次序插入关键码,二叉搜索树的性能都能达到最优?那么我们学习的AVL树和红黑树就可以上场了。二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值。a、从根开始比较,查找,比根大则往右边走查找,比根小则往左边走查找。b. 树不空,按二叉搜索树性质查找插入位置,插入新节点。原创 2022-12-24 20:07:13 · 46 阅读 · 0 评论 -
stack和queue
stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:empty:判空操作back:获取尾部元素操作。原创 2022-12-24 20:06:48 · 164 阅读 · 0 评论 -
简单二叉树的功能实现
二叉树原创 2022-06-28 22:12:56 · 120 阅读 · 0 评论 -
堆的详解及堆排序
目录前言堆的概念及结构堆的实现向上调整算法向下调整算法时间复杂度堆的插入和删除堆排序TopK问题堆的实现代码Heap.hHeap.ctext.c前言堆有大堆和小堆,堆的存储结构是数组就是数据存放在数组里面,堆的逻辑结构是一个完全二叉树,实现时把一个数组看成一个完全二叉树去理解。堆的概念及结构堆的实现给定一个数组如何将它变成一个堆呢?向上调整算法向下调整算法向下调整算法有一个前提:左右子树必须是一个堆,才能调整。时间复杂度堆的插入和删除堆排序堆删除的思想T原创 2022-05-27 23:01:04 · 131 阅读 · 0 评论 -
所有常见排序详解
2.3希尔排序(缩小增量排序)3.选择排序3.1基本思想4.交换排序4.1基本思想4.3快速排序4.3.2递归+三数取中+小区间优化4.3.3非递归+三数取中5.归并排序5.1基本思想5.3归并非递归5.3.1为什么不能使用栈......原创 2022-02-26 17:21:20 · 1201 阅读 · 0 评论 -
链表相关的题目
1.反转单链表:链接 思路一 struct ListNode* reverseList(struct ListNode* head){ // 翻转指针方向 if(head==NULL) { return NULL; } // 初始条件 struct ListNode*n1=NULL,*n2=head,*n3=head->next; // 结束条件 while(n2) { // 迭代过原创 2022-05-08 12:46:31 · 409 阅读 · 0 评论 -
顺序表和链表
目录1.线性表2.顺序表实现2.1概念及结构2.2 接口实现:静态表动态表1.线性表2.顺序表实现2.1概念及结构// 顺序表的静态存储#define MAX_SIZE 100typedef int SQDataType;typedef struct SeqList{ SQDataType a[N]; // 定长数组 int size; // 有效数据的个数}SL;// 顺序表的动态存储typedef struct SQDataType{ SQDat原创 2022-02-24 17:45:35 · 137 阅读 · 0 评论