数据结构
文章平均质量分 64
西科陈冠希
此人不懒,什么都写
展开
-
【数据结构初阶】常见排序算法(递归法)
排序什么是排序常见排序算法排序算法复杂度及稳定性分析什么是排序常见排序算法排序算法复杂度及稳定性分析原创 2021-01-27 21:29:54 · 384 阅读 · 1 评论 -
【数据结构排序】选择排序和堆排序(选择排序)
这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-01-27 21:28:57 · 373 阅读 · 0 评论 -
【数据结构排序】希尔排序(插入排序)
希尔排序一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-01-27 21:17:19 · 288 阅读 · 0 评论 -
【数据结构排序】归并排序
这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-01-27 21:09:44 · 148 阅读 · 0 评论 -
【数据结构排序】快排(交换排序)
【数据结构排序】原创 2021-01-27 20:57:11 · 429 阅读 · 0 评论 -
【数据结构初阶】二叉树的前中后序构建
二叉树的前中后序构建前中后序简介代码实现前中后序简介二叉树的遍历主要有三种:(1)先(根)序遍历(根左右)(2)中(根)序遍历(左根右)(3)后(根)序遍历(左右根)图例:前:ABDECFG中:DBEAFCG后:DEBFGCA代码实现对树的构建并不是每一个树都是满二叉树也会有NULL;当我们创建树的时候要想到NULL的这一结点,我们将树的数据想成无限长的数组,通过指针pi的++来存下一个数据。没来一个数据就创建一个树结点(结构体),当树为空树时候判断直接返回NULL,还有一种是叶原创 2021-01-19 20:44:32 · 279 阅读 · 0 评论 -
【数据结构初阶】大堆与小堆的实现(向上向下调整)TopK问题
大堆与小堆的实现(向上向下调整)TopK问题什么是大堆,小堆堆的实现TOPK问题什么是大堆,小堆定义:如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki <= K2i+1 且 Ki<= K2i+2 (Ki >= K2i+1 且 Ki >= K2i+2) i = 0,1,2…,则称为 小堆(或大堆)。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。堆的实现TO原创 2021-01-18 15:22:19 · 328 阅读 · 0 评论 -
【数据结构初阶】二叉树
二叉树二叉树是什么特殊二叉树(两种)二叉树性质二叉树是什么要知道二叉树首先要知道树的定义:树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。树的特点:有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1<= i <= m)又是一棵结构与树类似的子树。每棵子树的根结原创 2021-01-17 14:40:06 · 277 阅读 · 0 评论 -
【数据结构初阶】栈与队列(队列篇)
队列什么是队列队列实现代码精讲队列应用什么是队列队列的概念及结构队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头。图例:队列一端是出队一端是入队,因为其特殊的结构先入先出从队尾进入后随着不断地插入入队,当队列满时停止入队,如果需要出队,那么就从队头出数据。队列实现队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果原创 2021-01-07 12:01:17 · 251 阅读 · 0 评论 -
【数据结构初阶】栈与队列(栈篇)
栈什么是栈栈的实现代码精讲栈的运用什么是栈栈的概念及结构:栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈,出数据也在栈顶。特性:Last In First Out先入后出图例:因为栈特殊的结构,栈是一个上开下闭的结构,我们将栈的底部定义为栈底并赋值为0或原创 2021-01-07 11:29:58 · 232 阅读 · 0 评论 -
【数据结构初阶】双向链表的增删查改
双向链表的增删查改双向链表初识增删查改销毁双向链表参考代码双向链表初识定义:带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,实现反而简单了,后面我们代码实现了就知道了。图例:之所以叫循环双向带头链表:是因为他第一个结点是头结点不放入数据,加了哨兵头结点在插入结点的时候就不用对空进行判断,方便了操作。这里和无头链表的区别就是;无头链表结构体中只有数据和next指向in原创 2021-01-01 23:27:33 · 240 阅读 · 1 评论 -
【数据结构初阶】链表增删查改
链表链表初识无头链表增删查改链表初识概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。一般的链表类型都是这样 前驱和后继分别指向的是数据和下一个的地址实际中链表的结构非常多样,以下情况组合起来就有8种链表结构:单向、双向带头、不带头循环、非循环无头链表无头单向非循环链表:结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等。另外这种结构在笔试面试中出现很多增删查改无原创 2020-12-09 12:40:05 · 450 阅读 · 2 评论 -
【数据结构初阶】顺序表的增删查改
顺序表的增删查改分析问题解决问题代码实现(刚学习变成挤出时间写博客分享也希望大家点赞收藏)分析问题 首先我们要知道顺序表增删查改四个实现功能的前提就是要先建立一个代表头的顺序表。(CreateLink)这里我用了malloc去开辟空间给定义顺序表的空间开辟这里我们先创建头结点建立一个挂一个链就后者则是前连后挂这样也就是尾结点指向空最后返回表头这样表就建立好了 其次创建完后我们需要前后的对比,所以我们需要一个打印的函数功能这里我们就可以打印将指针指向头p->next 然后但因next里边的data原创 2020-10-31 16:59:13 · 443 阅读 · 0 评论