0
点赞
收藏
分享

微信扫一扫

数据结构日记之《线性表的定义》

线性表的定义

一、线性表描述

在日常生活中, 线性表的例子比比皆是。例如 ,26个英文字母的字母表:

  • (A, B, C, …,Z)

是一个线性表,表中的数据元素是单个字母。在稍复杂的线性表中, 一个数据元素可以包含若干
个数据项。例如学生基本信息表,每个学生为一个数据元素,包括学号、姓名、性别、籍贯、 专业等数据项

由以上示例可以看出,它们的数据元素虽然不同,但同一线性表中的元素必定具有相同的特性, 即属千同一数据对象,相邻数据元素之间存在着序偶关系。
诸如此类由n (n >=0 )个数据特性相同的元素构成的有限序列称为线性表
线性表中元素的个数n (n >=0 )定义为线性表的长度,n = 0 时称为空表

非空的线性表或线性结构, 其特点是:

  1. 存在唯一的一个被称作 “第一个" 的数据元素;
  2. 存在唯一的一个被称作 “最后一个" 的数据元素;
  3. 除第一个之外, 结构中的每个数据元素均只有一个前驱;
  4. 除最后一个之外,结构中的每个数据元素均只有一个后继。

二、线性表的定义

线性表是一个相当灵活的数据结构,其长度可根据需要增长或缩短,即对线性表的数据元素不仅可以进行访问,而且可以进行插入和删除等操作。
【我们使用的是C语言来描述的】
线性表的抽象数据类型定义其实简单来说:这个数据结构有什么功能;这个和具体实现这个功能无关,就是要搞清楚这个数据结构有哪些功能就像,实现有很多方法,但是实现的目的就是唯一的。我们就是找出这个唯一的东西。

实现线性表可以使用数组【顺序表】、指针结构体【链表】来完成这些功能。

操作名(函数名)初始条件操作结果
InitList(&L)-构造一个空的线性表L
DestroyList(&L)L已存在销毁线性表L。
ClearList(&L)L已存在将L重置为空表。
ListEmpty(L)L已存在若L为空表,则返回true,否则返回false。
ListLength(L)L已存在返回L中数据元素个数。
GetElem(L, i, &e)L已存在,且1≤i≤ListLength(L)用e返回L中第1个数据元素的值
LocateElem(L, e)L已存在返回L中第1个值与e相同的元素在L中的位置。若这样的数据元素不存在,则返回值为0。
PriorElem(L, cur_e, &pre_e)L已存在若cur_e是L的数据元素,且不是第一个,则用 pre_e 返回其前驱,否则操作失败,pre_e无定义
NextElem(L, cur_e, &next_e)L已存在若cur_e是L的数据元素,且不是最后一个,则用 next_e 返回其后继,否则操作失败,next_e无定义
ListInsert(&L, i, e)L已存在,且1 ≤ i ≤ ListLength(L)+1在L中第1个位置之前插入新的数据元素e,L的长度加1
ListDelete(&L, i)L已存在且非空,且1 ≤ i ≤ ListLength(L)删除L的第1个数据元素,L的长度减1
TraverseList(L)L已存在对线性表L进行遍历,在遍历过程中对 L的每个结点访问一次。
举报

相关推荐

0 条评论