数据结构
文章平均质量分 85
顺序表、链表、栈、队列、堆和TopK、链式二叉树、各大排序等内容
不会敲代码的小张:)
Keep going
展开
-
数据结构<树和二叉树>顺序表存储二叉树实现堆排
1. 满二叉树:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且结点总数是 ,则它就是满二叉树。2. 完全二叉树:完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。 要注意的是满二叉树是一种特殊的完全二叉树。原创 2023-08-20 20:19:14 · 1372 阅读 · 20 评论 -
数据结构【队列】值得一看!
队列,就是常用的数据结构之一。队列的特征是先进先出(First-In-First-Out),就相当于我们现实中排队的样子。队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,以及在表的后端(back)进行插入操作。和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。原创 2023-08-05 08:00:00 · 209 阅读 · 18 评论 -
数据结构【栈】有哪些应用场景?
本章会介绍栈的特性以及栈的初始化、销毁、插入、删除、取栈顶元素等…栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出(Last in Firstout)的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。原创 2023-05-29 07:45:00 · 1643 阅读 · 38 评论 -
数据结构【链表】看完还怕拿不下链表?
无头单向非循环链表具体链表介绍内容请见上一章节本章节主要介绍双向链表以及带头节点和循环的概念和实现,并且本章是在上一章节的基础上加以改造,虽然结构复杂了点,但是要比单链表更好实现🤪从上面的图中我们可以看到,每一个节点都会有一个指针指向前一个和后一个,然后头节点指向最后一个节点,最后一个节点指向头节点,这就是带头双向循环链表。那为什么会有单链表和双链表之分呢?在单链表删除或者查询一个元素时,我们只能单向读取,然后如果删除的话,我们要保存前一个节点,为克服单链表的单向性。原创 2023-05-26 14:19:22 · 1008 阅读 · 28 评论 -
数据结构《链表》无头单向非循环-动图详解
前面学习了顺序表发现,顺序表虽然好,但也有很多不足的地方,比方说,顺序表是一块连续的物理空间,如果头插或者头删,那么整个数组的数据都要移动。但是链表不一样,链表是通过指针访问或者调整,链表是物理空间是不连续的,通过当前的next指针找到下一个。插入删除速度快内存利用率高,不会浪费内存大小没有固定,拓展很灵活。原创 2023-05-24 16:52:18 · 845 阅读 · 16 评论 -
数据结构《顺序表》
线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。原创 2023-05-18 20:21:04 · 540 阅读 · 13 评论