一:顺序表:
顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。将表中元素一个接一个的存入一组连续的存储单元中,这种存储结构是顺序结构。
顺序表的存储特点是:只要确定了起始位置,表中任一元素的地址都可以得到。
二:单向链表:
单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。
三:循环链表:
它和单链表的差别仅在于,判别链表中最后一个结点的条件不再是“后继是否为空”,而是“后继是否为头结点”。
循环链表的运算与单链表的运算基本一致。所不同的有以下几点: 1、在建立一个循环链表时,必须使其最后一个结点的指针指向表头结点,而不是象单链表那样置为NULL。此种情况还使用于在最后一个结点后插入一个新的结点。 2、在判断是否到表尾时,是判断该结点链域的值是否是表头结点,当链域值等于表头指针时,说明已到表尾。而非象单链表那样判断链域值是否为NULL。
四:双向链表:
1.双(向)链表中有两条方向不同的链,即每个结点中除next域存放后继结点地址外,还增加一个指向其直接前趋的指针域prior。
注意: ①双链表由头指针head惟一确定的。 ②带头结点的双链表的某些运算变得方便。 ③将头结点和尾结点链接起来,为双(向)循环链表。
2.
双向链表的前插和删除本结点操作 由于双链表的对称性,在双链表能能方便地完成各种插入、删除操作。 ①双链表的前插操作
{//在带头结点的双链表中,将值为x的新结点插入*p之前,设p≠NULL DListNode *s=malloc(sizeof(DListNode));//① s->data=x;//② s->prior=p->prior;//③ s->next=p;//④ p->prior->next=s;//⑤ p->prior=s;//⑥ } ②双链表上删除结点*p自身的操作
void DDeleteNode(DListNode *p) {//在带头结点的双链表中,删除结点*p,设*p为非终端结点 p->prior->next=p->next;//① p->next->prior=p->prior;//② free(p);//③ } 注意: 与单链表上的插入和删除操作不同的是,在双链表中插入和删除必须同时修改两个方向上的指针。 上述两个算法的时间复杂度均为O(1)。
|
|
|
分享到:
相关推荐
线性表 栈 队列 串
数据结构线性表总结 数据结构中的线性表是指具有相同类型的数据元素构成的有限序列,根据存储结构的不同,线性表可以分为顺序表、单链表、循环链表、双向链表和双向循环链表等。 顺序表 顺序表是一种存储结构为...
数据结构中的线性表是一种基本的数据组织形式,它是由n(n≥0)个相同类型元素构成的有限序列。线性表的顺序表示通常被称为顺序表,而链式表示则有单项链表、循环链表、双向链表和双向循环链表等不同形式。 在顺序...
线性表是数据结构中最基础的一种,它是由n(n>=0)个相同类型元素构成的有限序列,其中的元素有严格的前后顺序关系。 在逻辑结构上,线性表允许在任何位置插入或删除元素。线性表有两种主要的存储方式:顺序存储和...
线性表的类型定义 线性表的类型实现(包括顺序印象和链式印象)
### 数据结构线性表相关知识总结 #### 一、线性结构的特点 线性结构是数据结构中最基本的一种,其特点主要包括以下几点: 1. **唯一性**:线性结构中存在唯一的一个被称为“第一个”的数据元素,同样也存在唯一的...
【线性表结构】线性表是一种常见的数据结构,它是由n(n≥0)个相同类型元素构成的有限序列。在本实验中,我们关注的是线性表的顺序存储结构,即顺序表。顺序表是通过数组来实现的,其中元素按照线性顺序存储在一块...
#### 实验总结 通过此次实验,学生不仅掌握了线性表顺序存储结构的基本概念与实现方法,还学会了如何运用VC++进行程序调试以及设计简单的用户交互界面。这些技能对于以后的学习和工作都将是宝贵的财富。此外,通过...
#### 三、总结 通过以上代码分析,我们可以看到使用C语言实现线性表的基本操作非常直观且易于理解。顺序存储方式的优点在于访问效率高,但插入和删除操作可能导致大量元素的移动,效率较低。对于动态变化不频繁的...
根据给定的文件信息,我们可以总结出以下关于“线性表实现插入删除数据”的关键知识点,这些知识主要涉及C语言中的线性表操作,包括初始化、添加元素、合并线性表、插入元素、删除元素以及查找元素等核心功能。...
【线性表的基本操作实验报告】 线性表是数据结构中的基本概念,它是由n(n≥0)个相同类型元素构成的有限序列。在这个实验报告中,我们将深入理解和掌握线性表的顺序存储结构以及相关操作。实验的主要目的是通过...
数据结构线性表学习笔记总结 线性表-顺序存储-链式存储-循环链表-双链表 知识点总结-代码实现
根据给定的文件信息,我们可以总结出以下关于“线性表插入倒置删除”的相关知识点: ### 一、线性表的基本概念 线性表是数据结构中最基本的一种线性结构,它是由相同类型的若干个元素组成的有限序列,通常用顺序...
总结来说,理解线性表及其操作对于深入学习C++和其他编程语言的数据结构至关重要。线性表的抽象数据类型设计使得我们可以专注于问题的解决,而不必关心具体实现的细节,从而提高代码的可读性和复用性。
线性表是计算机科学中一种...总结,线性表是数据结构的基础,C语言提供了灵活的方式来实现线性表,无论是数组还是链表,都有其适用的场景。理解和熟练运用线性表的实现与操作,是成为一名合格的C语言程序员的关键步骤。
数据结构中的线性表是一种基础且重要的数据组织形式,它由有限个相同类型元素构成的序列,元素之间存在一对一的关系,即每个元素都有一个前驱元素和一个后继元素(除了首尾元素)。线性表有两种主要的存储方式:顺序...
[工学]第2章线性表算法总结.ppt
线性表是一种基础且...总结,线性表的顺序存储在C语言中的实现涉及数据结构的基本操作,这些操作的理解和实践对于掌握数据结构和算法至关重要。通过熟练运用这些知识,可以为更复杂的算法和数据结构打下坚实的基础。