mirror of
https://github.com/142vip/408CSFamily.git
synced 2026-04-24 10:39:50 +08:00
fix: 修改docs
This commit is contained in:
66
docs/DS/linear_table.md
Normal file
66
docs/DS/linear_table.md
Normal file
@@ -0,0 +1,66 @@
|
||||
---
|
||||
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所占用的内存空间(类似:释放内存)
|
||||
|
||||
|
||||
线性表是具有相同的数据类型的有限个数据元素组成的,**数据元素是由数据项组成的**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user