
数据结构
文章平均质量分 93
Suk-god
正确的开始,微小的长进,然后持续
展开
-
【数据结构】各大排序算法
文章目录排序的相关概念排序稳定性内部排序外部排序常见排序介绍插入类排序直接插入排序希尔排序选择类排序选择排序(优化版本)堆排序交换类排序冒泡排序快速排序递归版本划分方法&基准值确定非递归版本归并排序排序算法复杂度&稳定性总结排序的相关概念排序所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性待排序数据在排序前后相同元素的相对位置是否发生改变如果改变:该排序不稳定反之就是稳定的内部排序数据元素全部放在内存中的排序。外部排序数据元原创 2022-01-19 16:23:25 · 911 阅读 · 0 评论 -
【数据结构】 二叉树相关操作(详解)
二叉树 堆操作 堆排序 Top-K问题 二叉树的创建原创 2021-12-25 19:09:55 · 2395 阅读 · 0 评论 -
【数据结构】栈与队列
文章目录栈概念及结构栈的实现结构的选择分类静态栈结构动态的栈结构动态增长的栈相关操作实现1.栈的基本结构定义2.初始化栈3.栈的销毁判断栈是否为空入栈操作出栈获取栈顶元素获取栈中元素个数测试代码队列概念及结构队列的实现结构的选择相关操作的实现数据结构的定义队列的初始化销毁队列判断队列是否为空入队操作出队操作获取队头元素获取队尾元素获取有效元素个数测试代码获取原码:栈概念及结构一种特殊的线性表,只能在固定的一端进行插入和删除操作,进行插入和删除的一端称为栈顶,另一端称为栈底。数据元素遵循:后进先出,L原创 2021-12-01 09:48:38 · 781 阅读 · 4 评论 -
【数据结构】带头双向循环链表
文章目录双向链表的结构基础操作数据结构创建结点创建头结点双向链表的销毁双向链表的打印双链表的尾插双向链表的尾删双链表的头插双链表的头删双向链表的查找双向链表在pos的前面进行插入双向链表删除pos位置的节点改写相关函数尾插尾删头插头删完整代码总结双向链表的结构1.双向循环链表的每一个结点都包括以下部分:2.头结点中的data域没有实际意义3.双向循环链表例如:基础操作数据结构typedef int LTDataType;typedef struct ListNode{ LTData原创 2021-11-27 17:35:06 · 1478 阅读 · 7 评论 -
【数据结构】不带头结点非循环的单链表
文章目录走进链表概念&结构特点链表的分类不带头结点、非循环的单链表结构增删查改打印等基础操作申请结点头插&尾插头删&尾删查找打印输出任意位置插入任意位置删除最重要的一项操作优缺点源码分享走进链表概念&结构链表是一种物理存储结构上非连续,非顺序的存储结构。数据元素的逻辑顺序是通过链表中的指针指向来实现的。特点1.物理存储单元不连续2.依靠指针强前后元素关联起来3.随用随开辟链表的分类1.单向、双向链表2.带头或者不带头3.循环或者非循环原创 2021-11-25 13:05:51 · 1330 阅读 · 8 评论 -
【数据结构】 动态存储的顺序表
文章目录顺序表的概念及结构分类1. 静态顺序表:使用定长数组存储元素。2.动态顺序表:使用动态开辟的数组存储。相关接口的实现动态开辟空间相关函数操作申明相关代码分享思考与总结1.顺序表的任意位置插入,时间复杂度高2.扩容消耗大3.扩容标准问题如何解决?顺序表的概念及结构顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。分类1. 静态顺序表:使用定长数组存储元素。不常用,也不实用。需要根据情况提前确定容量。2.动态顺序表:使用动态开原创 2021-11-24 17:35:19 · 1372 阅读 · 6 评论