![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言——数据结构初阶
文章平均质量分 90
数据结构初阶
应茶茶
大一本科 喜欢做有意义的事
展开
-
单链表中头节点带与不带哨兵位的区别(一级指针与二级指针)
大家最开始接触单链表时,大多都是用不带哨兵位的方法实现的。不带哨兵位时我们通常需要用到二级指针去接收所定义的SLNode*phead的地址才能实现自己想要的,那为什么带哨兵位用一级指针就可以呢?我想大家对此或多或少都会有些疑惑,甚至自己也想不通要怎样实现带哨兵位的单链表。我接下来对带哨兵位的单链表进行实现并对上述问题进行讲解。我在这里主要想说的是为什么带哨兵为的单链表可以不用二级指针,其他函数的实现其实都与不带哨兵位的单链表函数实现差别不大。原创 2023-11-24 23:22:06 · 1094 阅读 · 2 评论 -
带哨兵位的双向循环链表
带头双向循环链表,是我们学过的链表中结构最复杂的一种,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。虽然他结构最复杂,但是他实现起来却又是很简单。至于怎样简单,请看下文。原创 2023-12-05 14:41:29 · 841 阅读 · 1 评论 -
数据结构---栈的认识与实现
要搞清楚这个概念,首先要明白“栈”原来的意思,如此才能把握本质。栈,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。 在数据结构当中,栈是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。 原创 2023-12-25 00:15:00 · 913 阅读 · 2 评论 -
数据结构——堆(Heap)功能的实现
什么是堆?简单来说,堆就是一个完全二叉树,在这个完全二叉树中,每一个子树的根节点总是大于它的左右孩子,那就称为大堆,反过来,每一个子树的根节点总是小于它的左右孩子,那就称为小堆。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。原创 2024-01-10 15:27:10 · 1169 阅读 · 2 评论 -
数据结构--堆排序(超详细!)
堆排序与Top K问题是堆的两大应用,在我们日常也有很广泛的用处我们已经上面已经说过了堆,这次来说堆的其中一个应用---堆排序。原创 2024-01-30 23:49:26 · 744 阅读 · 2 评论