学科分类
目录
数据结构

什么是线性表

线性表是具有相同特性的数据元素组成的一个有限序列。例如,定义一个线性表来存储本班学生的学生编号,可表示为如下形式:

(001, 002, 003……050)

这就是一个线性表。线性表也可以用一个标识符来命名,如A = (001, 002, 003……050)。线性表中元素的个数为线性表的长度,当元素个数为0时,称该线性表为空表。线性表中的元素可以是整数、字符等简单数据,也可以由数个数据项组成。如第一章中的图1-1,它也是一个线性表,描述的是新学期入学学生的信息,其中每一个元素都由几个数据项组成,在这种情况下,常把元素称为一条记录。

每一种数据结构都有它自己的特征,线性表作为一种最简单的数据结构,有如下几个特征:

(1)线性表中有且只有一个开始结点(头结点),这个开始结点没有前驱结点。

(2)线性表中有且只有一个末尾结点(尾结点),这个末尾结点没有后继结点。

(3)除去开始结点与末尾结点,其它结点都有一个前驱结点和一个后继结点。

线性表的这种结构使元素逐个排列开来,如手拉手的小朋友,如此呈现给人们的数据形式就比较清晰明了。

线性表在存储结构上有顺序存储和链式存储两种方式,但不管哪种存储方式,它们的结构都有如下特点:

● 均匀性:虽然不同数据表的数据元素可以是各种各样的,但对于同一个线性表来说,数据元素必须具有相同的数据类型和长度。

● 有序性:各数据元素在线性表中的位置只取决于它们的序号,数据元素之间的相对位置是线性的,即存在唯一的“第一个”和“最后一个”数据元素,除了第一个和最后一个外,其它元素前面均只有一个数据元素(直接前驱),后面均只有一个数据元素(直接后继)。

数据结构的目的是和算法结合,实现各种操作。线性表是一种比较灵活的数据结构,它的长度可根据需要增减,它也可以进行插入、删除等操作。可对线性表进行的基本操作如下所示:

● 创建-Create():创建一个新的线性表。

● 初始化-Init():初始化操作,将新创建的线性表初始化为空。

● 获取长度-GetLength():获取线性表的长度。

● 判断表是否为空IsEmpty():判断线性表是否为空。

● 获取元素-Get():获取线性表某一个位置上的元素。

● 插入-Insert():在线性表的某一个位置插入一个元素。

● 删除-Delete():删除某一个位置上的元素。

● 清空表-Clear():清空线性表,将线性表置为空。

当然,在设计线性表时,也可以有其他操作,例如,根据某个条件对线性表中的元素进行排序、将两个线性表合并成一个、重新复制一个线性表等,上面只是描述了线性表一些最基本的操作。

线性表是应用最广泛的一种数据结构,在使用过程中,除了链表、栈和队列等,线性表还有很多推广应用,如时间表、排序表等。当然,这些推广应用需要读者在实际开发中去深入学习,限于教材篇幅,本书只讲解最基础的线性表。

点击此处
隐藏目录