数据结构学习笔记(三)--线性表的定义和基本操作
数据结构学习笔记(三)--线性表的定义和基本操作
数据结构三要素 --逻辑结构、数据的运算、存储结构(物理结构)
-
定义便是逻辑结构
-
基本操作就是运算
-
存储结构不同,运算的实现方式不同
点击进入上一篇:数据结构学习笔记(二)--空间复杂度
线性表的定义
线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列,其中n为表长,当n = 0时线性表是一个空表。若用L命名线性表,则其一般表示为: L = (a1 , a2 , ... , ai , a(i+1) , ... , an)。
注:线性表角标是从1开始的。
图形显示:
特性:
- 一个线性表中,所有数据元素数据类型都相同,即意味着每个数据元素所占空间一样大。
- 线性表是一个序列,故其有次序。
- 线性表是有限的。
线性表的概念汇总
- ai是线性表中的“第i个”元素线性表中的位序。
- a1是表头元素,an是表尾元素。
- 除第一个元素外,每个元素有且仅有一个直接前驱;除最后一个元素外,每个元素有且仅有一个直接后继。
线性表的基本操作
类似java学习的curd(增删改查)但又不完全一样,大概有如下几种:
- InitList(&L):初始化表。构造一个空的线性表L,分配内存空间。
- DestroyList(&L): 销毁操作。销毁线性表,并释放线性表L所占用的内存空间。
- ListInsert(&L,i,e):插入操作。在表L中的第i个位置上插入指定元素e。
- ListDelete(&L,i,&e):删除操作。删除表L中第i个位置的元素,并用e返回删除元素的值。
- LocateElem(L,e):按值查找操作。在表L中查找具有给定关键字值的元素。
- GetElem(L,i):按位查找操作。获取表L中第i个位置的元素的值。
其他常用操作
- Length(L):求表长。返回线性表L的长度,即L中数据元素的个数。
- PrintList(L):输出操作。按前后顺序输出线性表L的所有元素值。
- Empty(L):判空操作。若L为空表,则返回true,否则返回false。
笔记
- 对数据的操作的记忆思路:一般都为创销、增删改查。
- 描述基本操作的方法类似于伪代码,并不需要标明参数类型和返回值类型,具体在代码中实现才需要。
- 实际开发中,可根据实际需求定义其他的基本操作。
- 函数名和参数的形式与命名要求具有可读性,例如驼峰命名法。
- 什么时候要传入引用“&” --对参数的修改结果需要“带回来”,也就是c++的引用指针。
点击进入下一篇:数据结构学习笔记(四)--顺序表