C语言
北徯
QQ:981715157
展开
-
C语言实现链式队列
链式队列,简称"链队列",即使用链表实现的队列存储结构。链式队列的实现思想同顺序队列类似,只需创建两个指针(命名为 top 和 rear)分别指向链表中队列的队头元素和队尾元素,如下图所示: 所示为链式队列的初始状态,此时队列中没有存储任何数据元素,因此 top 和 rear 指针都同时指向头节点。 在创建链式队列时,强烈建议初学者创建一个带有头节点的链表,这样实现链式队列会更...原创 2020-03-01 19:21:12 · 939 阅读 · 0 评论 -
队列的含义以及C语言实现顺序队列
队列,和栈一样,也是一种对数据的"存"和"取"有严格要求的线性存储结构。什么是队列与栈结构不同的是,队列的两端都"开口",要求数据只能从一端进,从另一端出,如下图示:通常,称进数据的一端为 “队尾”,出数据的一端为 “队头”,数据元素进队列的过程称为 “入队”,出队列的过程称为 “出队”。不仅如此,队列中数据的进出要遵循 “先进先出” 的原则,即最先进队列的数据元素,同样要最先出队列...原创 2020-02-16 21:01:44 · 204 阅读 · 0 评论 -
C语言实现链栈以及基本操作
链栈,即用链表实现栈存储结构。链栈的实现思路同顺序栈类似,顺序栈是将数顺序表(数组)的一端作为栈底,另一端为栈顶;链栈也如此,通常我们将链表的头部作为栈顶,尾部作为栈底,如下下图所示:将链表头部作为栈顶的一端,可以避免在实现数据 “入栈” 和 “出栈” 操作时做大量遍历链表的耗时操作。链表的头部作为栈顶,意味着:在实现数据"入栈"操作时,需要将数据从链表的头部插入;在实现数据"出栈...原创 2020-02-01 19:54:12 · 2006 阅读 · 0 评论 -
C语言实现双向循环链表
在之前的文章中,我写过一篇关于C语言实现双向链表博文,介绍了双向链表的实现过程以及双向链表的优势,接下来我首先给大家介绍一下循环链表和双向链表的区别,之后再给大家介绍双向循环链表的具体实现。循环链表和双向链表的区别1、最后一个结点指针指向不同在建立一个循环链表时,必须使其最后一个结点的指针指向表头结点,而不是像双向链表那样置为NULL。此种情况还用于在最后一个结点后插入一个新的结点。2、判...原创 2020-01-31 13:53:55 · 2435 阅读 · 0 评论 -
C语言实现顺序栈以及栈的特点
同顺序表和链表一样,栈也是用来存储逻辑关系为 “一对一” 数据的线性存储结构,如下图所示。原创 2020-01-29 13:21:37 · 1376 阅读 · 0 评论 -
C语言实现双向链表
目前我们所学到的链表,无论是动态链表还是静态链表,表中各节点中都只包含一个指针(游标),且都统一指向直接后继节点,通常称这类链表为单向链表(或单链表)。虽然使用单链表能 100% 解决逻辑关系为 “一对一” 数据的存储问题,但在解决某些特殊问题时,单链表并不是效率最优的存储结构。比如说,如果算法中需要大量地找某指定结点的前趋结点,使用单链表无疑是灾难性的,因为单链表更适合 “从前往后” 找,而 ...原创 2020-01-16 22:04:34 · 781 阅读 · 0 评论 -
C语言实现链表(链式存储结构)
链表(链式存储结构)及创建链表,别名链式存储结构或单链表,用于存储逻辑关系为 “一对一” 的数据。与顺序表不同,链表不限制数据的物理存储状态,换句话说,使用链表存储的数据元素,其物理存储位置是随机的。例如,使用链表存储 {1,2,3},数据的物理存储状态如下图所示:我们看到,上图 根本无法体现出各数据之间的逻辑关系。对此,链表的解决方案是,每个数据元素在存储时都配备一个指针,用于指向自己的...原创 2020-01-14 21:26:57 · 4076 阅读 · 5 评论 -
C语言实现顺序表(顺序存储结构)
顺序表(顺序存储结构)及初始化过程详解顺序表,全名顺序存储结构,是线性表的一种。通过《线性表》一节的学习我们知道,线性表用于存储逻辑关系为“一对一”的数据,顺序表自然也不例外。不仅如此,顺序表对数据的物理存储结构也有要求。 顺序表存储数据时,会提前申请一整块足够大小的物理空间,然后将数据依次存储起来,存储时做到数据元素之间不留一丝缝隙。例如,使用顺序表存储集合{1,2,3,4,5}数据最终的...原创 2020-01-13 16:48:04 · 4994 阅读 · 8 评论