数据结构
数据结构复习
知报
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
用C语言建立一个顺序栈
栈(stack)是一种限定只能在一端进行插入和删除的线性表。表中允许进行插入和删除操作的一端称为栈顶,表的另一端称为栈底。栈的主要特点是“先进后出”,即先入栈的元素后出栈。每次进栈的元素都会成为新的栈顶,每次出栈的元素都是当前的栈顶元素。由于栈从组成元素的逻辑关系上来看是线性结构,因此可以像线性表一样采用顺序储存结构,即分配一组连续地址的储存单元依次存放自栈底到栈顶的元素,同时设置指针top指示栈顶元素在顺序栈中的位置。顺序栈的类型定义#define INIT_SIZE 10typedef stru原创 2020-07-22 23:22:29 · 4868 阅读 · 0 评论 -
用C语言简单实现双向链表
在单链表中,通过一个结点找到它的后继结点非常容易,操作的时间复杂程度为O(1),但是要找到它的前驱结点非常麻烦,操作的时间复杂程度为O(n),因为只能从表头指针开始,沿着每个结点遍历,究其原因是单链表的各个结点只指向其后继结点的next域,如果希望查找前驱结点的时间复杂程度也为O(1),则需要为每个结点添加一个前驱指针域prio,使得链表可以双向查找。这就是双向链表。双向链表结点的类型定义双向链表的每个结点都有两个指针域:一个指向后继、一个指向前驱。typedef struct DNode{原创 2020-07-21 23:31:19 · 287 阅读 · 0 评论 -
用C语言简单实现单链表
对于长度变化较大的线性表,预先分配空间必须按照最大空间分配时,会有空间利用不充足、线性表扩容难的问题。解决这些问题的办法就是采用链式储存结构。线性表的链式储存结构是指用一组任意的储存单元储存线性表中的数据。为了反应数据元素之间的逻辑关系,对于每个数据元素,不仅要表示它的具体内容,还要附加一个表示它的直接后继元素的储存位置的信息,这两部分信息组成数据元素的存储映像,成为结点(Node)。单链表中的每个结点只包含一个指针域。在线性表的链式储存结构中,为了方便插入和删除算法的实现,每个链表附加一个头结点,并通原创 2020-07-21 22:24:06 · 461 阅读 · 0 评论 -
用C语言简单实现顺序表
线性表的顺序储存结构是最简单、最常用的储存方式。顺序表是把线性表中所有的元素按照逻辑顺序依次储存到从计算机储存器中指定存储位置开始的一块连续的存储空间中而得到的线性表。因为内存中的地址空间是线性的,因此,用物理上的相邻实现数据元素之间的逻辑相邻关系简单方便。访问顺序表时,按位序访问每个元素花费的时间相等,均为O(n)。顺序表的储存类型定义如下:#define INIT_SIZE 10typedef struct SqList{ int *elem;//保存动态内存的地址 int l原创 2020-07-21 00:28:00 · 644 阅读 · 0 评论
分享