数据结构学习笔记(三)--线性表的定义和基本操作

数据结构学习笔记(三)--线性表的定义和基本操作

数据结构三要素 --逻辑结构、数据的运算、存储结构(物理结构)

  • 定义便是逻辑结构

  • 基本操作就是运算

  • 存储结构不同,运算的实现方式不同

点击进入上一篇:数据结构学习笔记(二)--空间复杂度

线性表的定义

线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列,其中n为表长,当n = 0时线性表是一个空表。若用L命名线性表,则其一般表示为: L = (a1 , a2 , ... , ai , a(i+1) , ... , an)。

注:线性表角标是从1开始的。

图形显示:

B702FQ6_2J6O`B_04UE9_DB.png

特性:

  1. 一个线性表中,所有数据元素数据类型都相同,即意味着每个数据元素所占空间一样大。
  2. 线性表是一个序列,故其有次序。
  3. 线性表是有限的。

线性表的概念汇总

  1. ai是线性表中的“第i个”元素线性表中的位序
  2. a1是表头元素,an是表尾元素
  3. 除第一个元素外,每个元素有且仅有一个直接前驱;除最后一个元素外,每个元素有且仅有一个直接后继

线性表的基本操作

类似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。

笔记

  1. 对数据的操作的记忆思路:一般都为创销、增删改查
  2. 描述基本操作的方法类似于伪代码,并不需要标明参数类型和返回值类型,具体在代码中实现才需要。
  3. 实际开发中,可根据实际需求定义其他的基本操作。
  4. 函数名和参数的形式与命名要求具有可读性,例如驼峰命名法
  5. 什么时候要传入引用“&” --对参数的修改结果需要“带回来”,也就是c++的引用指针。

点击进入下一篇:数据结构学习笔记(四)--顺序表

posted @ 2021-09-16 19:42  易奔二  阅读(336)  评论(0编辑  收藏  举报