数据结构(严蔚敏、吴伟民)——读书笔记-2、 线性表及其基本运算、顺序存储结构
第二章 线性表
2.1 线性表及其基本运算
2.2 线性表的顺序存储结构
2.3 线性表的链式存储结构
1、线性表:是n个数据元素的有限序列。
直接前驱元素、直接后继元素,n = 0时,称为空表。
一个数据元素能够有若干个数据项组成。
在这样的情况下,常把数据元素称为记录。含有大量记录的线性表又称为文件。
2、基本运算
InitList(&L) 初始化操作 设定一个空的线性表L
ListLength(L) 求长度函数 函数值为线性表L中数据元素的个数
GetElem(L,i。&e) 取元素函数 1<=i <=Length(L)时返回L中第i个数据元素给e。否 则为空元素NULL。
i称为该数据元素在L中的位序。
PriorElem(L,cur_e。&pre_e) 前驱函数 cur_e是L中的一个数据元素,若它的位序大于1,则函数 值为cur_e前驱pre_e,否则为NULL
NextElem(L。cur_e,&next_e) 求后继元素 若cur_e的位序小于表长,则函数值为elm的后继 next_e。否则为NULL
LocateElem(L,e,compare()) 定位函数 给定值e,若e不在表中,则返回0。否则返回e在表 中第一次出现时的位序
ListInsert(&L,i。e) 前插操作 在第i个元素之前插入新元素b,i的取值范围为: 1<=i<=n+1。i=n+1表示在表尾插入。n为表长
ListDelete(&L,i,e) 删除操作 删除线性表L中的第i个元素。1<=i<=n,并用e返回 其值
ListEmpty(L) 判空表函数 若L为空表。则返回布尔值”true“,否则返回布尔 值“false”
ClearList(&L) 表置空操作 将L置为空表
3、线性表的顺序存储结构
线性表的顺序存储结构指的是用一组地址连续的存储单元依次存储线性表的数据元素。
Loc(ai) = Loc(a1) + (i - 1) *k
4、线性表的插入和删除操作
线性表的动态分配顺序存储结构
为顺序表添加一个大小为存储LISTINCREMENT个数据元素的空间。
插入算法的思路:
> 假设插入位置不合理,抛出异常;
> 假设线性表长度大于等于数组长度,则抛出异常或者动态添加容量;
> 从最后一个元素開始向前遍历到第 i 个位置。分别将它们都向后移动一个位置;
> 将要插入的元素填入位置 i 处。
> 表长加 1。
算法:
删除算法的思路:
> 假设删除位置不合理。抛出异常。
> 取出删除元素。
> 从删除元素位置開始遍历到最后一个元素位置,分别将他们都向前移动一个位置。
> 表长减 1。
算法:
插入算法和删除算法的时间复杂度都为 O(n)
- 数据结构(严蔚敏、吴伟民)——读书笔记-2、 线性表及其基本运算、顺序存储结构
- 数据结构笔记(一)线性表的顺序表示和基本操作及其顺序表实现的集合运算(A-B)U(B-A)实例
- 数据结构(严蔚敏、吴伟民)——读书笔记-1、绪论
- 数据结构-顺序存储-线性表-基本运算
- 爹地的实验:实验一: 数据结构实验一线性表的基本操作实现及其应用
- 数据结构实验2(二叉链表实现二叉树的基本运算)
- 栈的顺序存储结构及其基本运算实现
- 数据结构与算法_1:线性表顺序存储结构常见操作
- 根据基本表结构及其数据生成SQL语句
- python语言基础之基本数据类型及其运算(2)
- 数据结构之线性表的顺序存储结构
- R语言学习笔记(一)——数据结构与基本运算
- 线性结构中的插入删除基本运算
- 数据结构中线性表的基本操作-合并两个线性表-依照元素升序排列
- 数据结构一 线性表的顺序存储结构
- oracle读书笔记-----PL/SQL编程(一)之基本数据类型、程序结构
- 数据结构(一):线性表的顺序存储结构-顺序表的实现
- 线性表数据结构解读(一)顺序存储结构ArrayList
- 栈——顺序存储结构及其基本运算
- 数据结构之线性表之顺序存储结构(3)