随笔分类 -  C语言实现数据结构

利用C语言实现各种数据结构
摘要:链式队列,简称"链队列",即使用链表实现的队列存储结构。 链式队列的实现思想同顺序队列类似,只需创建两个指针(命名为 top 和 rear)分别指向链表中队列的队头元素和队尾元素,如下图所示: 所示为链式队列的初始状态,此时队列中没有存储任何数据元素,因此 top 和 rear 指针都同时指向头节点 阅读全文
posted @ 2020-03-01 19:21 北徯。 阅读(490) 评论(0) 推荐(0)
摘要:队列,和栈一样,也是一种对数据的"存"和"取"有严格要求的线性存储结构。 什么是队列 与栈结构不同的是,队列的两端都"开口",要求数据只能从一端进,从另一端出,如下图示: 通常,称进数据的一端为 “队尾”,出数据的一端为 “队头”,数据元素进队列的过程称为 “入队”,出队列的过程称为 “出队”。 不 阅读全文
posted @ 2020-02-16 21:02 北徯。 阅读(744) 评论(0) 推荐(0)
摘要:链栈,即用链表实现栈存储结构。链栈的实现思路同顺序栈类似,顺序栈是将数顺序表(数组)的一端作为栈底,另一端为栈顶;链栈也如此,通常我们将链表的头部作为栈顶,尾部作为栈底,如下下图所示: 将链表头部作为栈顶的一端,可以避免在实现数据 “入栈” 和 “出栈” 操作时做大量遍历链表的耗时操作。 链表的头部 阅读全文
posted @ 2020-02-01 19:54 北徯。 阅读(2759) 评论(0) 推荐(1)
摘要:在之前的文章中,我写过一篇关于C语言实现双向链表博文,介绍了双向链表的实现过程以及双向链表的优势,接下来我首先给大家介绍一下循环链表和双向链表的区别,之后再给大家介绍双向循环链表的具体实现。 循环链表和双向链表的区别 1、最后一个结点指针指向不同 在建立一个循环链表时,必须使其最后一个结点的指针指向 阅读全文
posted @ 2020-01-31 13:54 北徯。 阅读(445) 评论(0) 推荐(0)
摘要:什么是栈? 同顺序表和链表一样,栈也是用来存储逻辑关系为 “一对一” 数据的线性存储结构,如下图所示。 从上图我们看到,栈存储结构与之前所学的线性存储结构有所差异,这缘于栈对数据 “存” 和 “取” 的过程有特殊的要求: 栈只能从表的一端存取数据,另一端是封闭的,如上图所示; 在栈中,无论是存数据还 阅读全文
posted @ 2020-01-29 13:22 北徯。 阅读(1037) 评论(0) 推荐(0)
摘要:目前我们所学到的链表,无论是动态链表还是静态链表,表中各节点中都只包含一个指针(游标),且都统一指向直接后继节点,通常称这类链表为单向链表(或单链表)。 虽然使用单链表能 100% 解决逻辑关系为 “一对一” 数据的存储问题,但在解决某些特殊问题时,单链表并不是效率最优的存储结构。比如说,如果算法中 阅读全文
posted @ 2020-01-16 22:05 北徯。 阅读(608) 评论(0) 推荐(0)
摘要:链表(链式存储结构)及创建 链表,别名链式存储结构或单链表,用于存储逻辑关系为 “一对一” 的数据。与顺序表不同,链表不限制数据的物理存储状态,换句话说,使用链表存储的数据元素,其物理存储位置是随机的。 例如,使用链表存储 {1,2,3},数据的物理存储状态如下图所示: 我们看到,上图 根本无法体现 阅读全文
posted @ 2020-01-14 21:27 北徯。 阅读(1317) 评论(0) 推荐(0)
摘要:顺序表(顺序存储结构)及初始化过程详解 顺序表,全名顺序存储结构,是线性表的一种。通过《线性表》一节的学习我们知道,线性表用于存储逻辑关系为“一对一”的数据,顺序表自然也不例外。 不仅如此,顺序表对数据的物理存储结构也有要求。 顺序表存储数据时,会提前申请一整块足够大小的物理空间,然后将数据依次存储 阅读全文
posted @ 2020-01-13 16:48 北徯。 阅读(2240) 评论(0) 推荐(0)