mirror of
https://github.com/142vip/408CSFamily.git
synced 2026-04-15 10:50:38 +08:00
67 lines
2.7 KiB
Markdown
67 lines
2.7 KiB
Markdown
---
|
||
title: 线性表
|
||
---
|
||
<!--
|
||
* @Description:
|
||
* @Version: Beta1.0
|
||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||
* @Date: 2021-03-07 21:57:27
|
||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||
* @LastEditTime: 2022-04-09 01:06:17
|
||
-->
|
||
|
||
|
||
|
||
<!-- ## 线性表的基础概念和基本操作 -->
|
||
|
||
## 基础概念和基本操作
|
||
|
||
> 强调线性表是一种逻辑结构,不是存储结构
|
||
|
||
|
||
### 定义
|
||
|
||
线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列。一般表示:
|
||
|
||
L=(a<sub>1</sub>,a<sub>2</sub>,a<sub>3</sub>......a<sub>n</sub>) 其中n可以理解为表长(线性表的长度),n=0时候,即表空
|
||
|
||
|
||
- `表头元素`:线性表中唯一的“第一个”数据元素,例如a<sub>1</sub>
|
||
- `表尾元素`:线性表中唯一的“最后一个”数据元素,例如a<sub>n</sub>
|
||
|
||
|
||
重要逻辑特性:
|
||
|
||
- 除表头元素外,线性表中每个元素有且仅有一个`直接前驱`
|
||
- 除表尾元素外,线性表中每个元素有且仅有一个`直接后继`
|
||
|
||
基于此,这种**线性有序的逻辑结构**,使得线性表的特点如下:
|
||
|
||
- 元素的**个数有限**(强调有限序列)
|
||
- 元素在逻辑上具有**顺序性**,在序列中每个元素都是都有先后次序的
|
||
- 元素都数据元素,**每个元素都是单个元素**
|
||
- 元素的**数据类型都相同**(强调相同数据类型),每个数据元素占用相同大小的存储空间
|
||
- 元素具有**抽象性**,仅仅讨论元素之间的逻辑关系,不需要去考虑元素究竟表示的什么内容
|
||
|
||
|
||
> Tips: **线性表是一种逻辑结构**,表示元素之间一对一的相邻关系。**顺序表和链表则指的是存储结构**
|
||
|
||
|
||
|
||
### 基本操作
|
||
|
||
- `InitList(&L)`: **初始化表**。构造空的线性表
|
||
- `Length(L)`:**获取表的长度**。返回线性表L的长度,即表中的数据元素个数
|
||
- `LocateElem(L,e)`:**按值查找操作**。在表L中国查找具有给定关键字的元素
|
||
- `GetElem(L,i)`:**按位查找操作**。获取表中第i个位置的元素的值
|
||
- `ListInsert(&L,i,e)`:**插入操作**。在表的第i个位置上插入指定元素e
|
||
- `ListDelete(&L,i,&e)`:**删除操作**。删除表中第i个位置的元素,并用e返回删除元素的值
|
||
- `PrintList(L)`:**输出操作**。按照前后顺序(如:1、2....n)输出线性表的所有元素值
|
||
- `Empty(L)`:**判空操作**。当表L为空,则返回true,否则返回false
|
||
- `DestoryList(&L)`:**销毁操作**。将线性表销毁,释放线性表L所占用的内存空间(类似:释放内存)
|
||
|
||
|
||
线性表是具有相同的数据类型的有限个数据元素组成的,**数据元素是由数据项组成的**
|
||
|
||
|