![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
数据结构与算法
big__C
小白
展开
-
【数据结构与算法】数据结构和算法的基本概念
目录数据结构基本概念算法基本概念数据结构基本概念算法基本概念原创 2020-06-30 22:54:26 · 106 阅读 · 0 评论 -
线性表之顺序表
目录一,线性表的定义二,线性表的特征三,顺序表的基本运算:顺序表L=(a0,a1,a2......,an-1)四,顺序表的应用事例一,线性表的定义线性表就是零个或多个相同数据的有限序列;线性表按在内存中的储存方法又分为顺序存储和链式存储。本节主要讲顺序存储即顺序表。二,线性表的特征对非空表,a0是表头,无前驱an-1是表尾,无后继其他的每个元素ai有且仅有一个直接前驱(ai-1)和一个直接后继(ai+1)三,顺序表的基本运算:顺序表L=(a0,a1,a2…,an-1)1.实原创 2020-07-25 15:06:40 · 351 阅读 · 0 评论 -
线性表之单链表
线性表的链式存储结构下面讨论线性表的链式存储结构,即链表。单链表的结构:将线性表L=(a0,a1,a2…,an-1)中各元素分布在不同存储器的不同存储块,称为结点,通过地址或指针 建立它们之间的联系,所得到的存储结构为链表结构。其中,节点的data域存放数据元素,而next域是一个指针,指向ai的直接后继ai+1所在的结点。于是结点和线性表的结构如下图:单链表的基本运算1.结点的描述:代码实现:typedef int datatype;typedef struct node{ .原创 2020-07-27 14:12:09 · 651 阅读 · 0 评论 -
双向循环链表的实现与基本运算
目录双向循环链表引入双向链表结点的描述双向循环链表的基本运算双向循环链表引入在单链表L中,查找ai的后继next(L,ai),耗时仅为o(1),因为取ai之后的后继指针即可。但查找ai的直接前驱prior(L,ai),则需要从链表的头指针开始,找到结点ai前一节点即是。故运算prior(L,ai),依赖表长n,耗时为o(n)。另外,若链表中有一指针值被破坏,则整个链表就会脱节。这是单链表的不足,为此引入双链表。如下图:双向链表结点的描述即双链表的结点包含三个部分,两个指针域,一个数据域。原创 2020-07-31 01:15:41 · 659 阅读 · 0 评论 -
顺序栈和链式栈的实现与基本运算
栈的定义栈是限制在一端进行插入操作和删除的线性表,允许进行操作的一端称之为栈顶,另一端固定为栈底,当栈中没有元素时称为空栈。栈的特点是后进先出(LIFO)。顺序栈它是顺序表的一种,具有顺序表同样的存储结构,由数组定义,配合用数组下标表示的栈顶指针top(相对指针)完成各种操作。栈的描述typedef int datatype; //定义栈的数据元素的数据类型typedef struct{ datatype* data; //用指针指向栈的存储空间 i.原创 2020-07-28 15:40:27 · 1687 阅读 · 0 评论