一篇文章搞懂线性表

105 阅读2分钟

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 8 天,点击查看活动详情

一.线性表的定义以及基本操作

1.线性表的定义

  1. 具有相同数据类型的n个数据元素的有限序列,通常用L来命名线性表。
  2. L=(a1,a2,...,ai,ai+1,...an)L=(a1,a2,...,ai,ai+1,...an),a1称为表头元素,an是表尾元素。

需要注意:

  • 除了第一个元素,也就是a1之外,每个元素有且只有一个直接前驱
  • 除了最后一个元素,也是an之外,每个元素有且只有一个直接后驱

2.线性表的特点

  1. 表中元素个数有限个
  2. 元素具有逻辑上的顺序性,有先后之分
  3. 都是数据元素,且都是单个元素
  4. 元素数据类型都相同,每个元素占有相同的存储空间
  5. 元素具有抽象性,仅仅讨论元素之间的逻辑关系,不考虑元素的内容

注意:

  • 线性表只是一种逻辑结构,逻辑结构也就是线性或者非线性,表示元素之间一对一的相邻关系。
  • 顺序表和链表是存储结构,存储结构包括:顺序存储,链式存储,索引存储,数列存储。

二.线性表的基本操作

1.初始化表:构造一个空的线性表

InitList(L)

2.求表的长度:返回的是线性表的长度也就是元素的个数

Length(L)

3.查找指定值:找出给定关键字的元素

LocateElem(L,e)

4.按照位置查找元素:找到表中第i个元素

GetElem(L,i)

5.插入操作:在第i个位置插入指定元素e

ListInsert(&L,i,e)

6.删除操作:删除表中第i个元素,并且用e来返回删除元素的值

ListDelete(&L,i,&e)

7.输出操作:按照前后顺序输出元素

PrintList(L)

8.判空操作:空返回true,非空返回false

Empty(L)

9.销毁操作:销毁表释放内存空间

DestoryList(&L)

三.整体框架

  1. 线性表分成顺序存储和链式存储

  2. 顺序存储---顺序表

  3. 链式存储---单链表,双链表以及循环链表 (上述三个都用指针来实现)

    ---静态链表(借助数组来实现)

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 8 天,点击查看活动详情