1
0
mirror of https://github.com/142vip/408CSFamily.git synced 2026-04-15 10:50:38 +08:00
Files
408CSFamily/docs/DS/linear_table.md
2022-04-09 01:09:36 +08:00

67 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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
-->
<!-- ## 线性表的基础概念和基本操作 -->
## 基础概念和基本操作
> 强调线性表是一种逻辑结构,不是存储结构
### 定义
线性表是具有相同数据类型的nn≥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所占用的内存空间类似释放内存
线性表是具有相同的数据类型的有限个数据元素组成的,**数据元素是由数据项组成的**