线性表的基本定义和操作


上一篇: 【目录】※※※※※ 【回到目录】※※※※※下一篇: 【线性表的顺序表示】

1.1 线性表的基本定义和操作

1.1.1 线性表的定义

  线性表是具有相同数据类型的 n(n \geq 0) 个数据元素的有限序列.其中n为表长,当 n = 0 n=0 时,该线性表是一个空表。若用 L L 命名线性表,则其一般表示如下:
L = ( a 1 , a 2 , , a n ) L = (a_1, a_2 ,\cdot \cdot \cdot ,a_n)
  其中, a 1 a_1 是唯一的“第一个”数据元素,又称为表头元素 a n a_n 是唯一的“最后一个”数据元素,又称为表尾元素。除第一个元素外,每个元素有且仅有一个直接前驱,除最后一个元素外,每个元素有且仅有一个直接后继.以上就是线性表的逻辑特性,这种线性有序的逻辑结构正是线性表名字的由来。

由此,我们得出线性表的特点如下:

  • 表中元素的个数有限。

  • 表中元素具有逻辑上的顺序性,在序列中各元素排序有其先后次序·

  • 表中元素都是数据元素,每一个元素都是单个元素。

  • 表中元素的数据类型都相同,这意味着每一个元素占有相同大小的存储空间。

  • 表中元素具有抽象性。即仅讨论元素间的逻辑关系,不考虑元素究竟表示什么内容。

    注意:线性表是一种逻辑结构,表示元素之间一对一的相邻关系。顺序表和链表是指存 储结构,两者属于不同层面的概念,因此不要将其混淆

1.1.2 线性表的基本操作

  一个数据结构的基本操作是指其最核心、最基本的操作。其他较复杂的操作可以通过调用其基本操作来实现.线性表的主要操作如下:

  • InitList(&L):初始化表。构造一个空的线性表。
  • Length(L):求表长。返回线性表L的长度,即L中数据元素的个数。
  • LocateEIem(L, e):按值查找操作。在表L中查找具有给定关键字值的元素。
  • GetElem(L, i) :按位查找操作。获取表L中第i个位置的元素的值。
  • ListInsen(&L, i, e):插入操作。在表L中第i个位置上插入指定元素e。
  • ListDelete(&L, i, &e):删除操作。删除表L中第i个位置的元素,并用e返回删除元素的值。
  • PnntList(L):输出操作。按前后顺序输出线性表L的所有元素值.
  • Empty(L):判空操作。若L为空表,则返回true.否则返回
  • DestroyList(&L):销毁操作。销毁线性表,并释放线性表L所占用的内存空间。
    注意:基本操作的实现取决于采用哪一种存储结构,存储结构不同,算法的实现也不
    同。@’&'表示c++中的引用。如果传入的变量是指针型的变量,且在函数体内要对传入的
    指针进行改变,则将用到指针变量的引用型。在c中采用指针的指针也可达到同样的效果。

1.1.3 题目(单项选择)

  1. 线性表是具有n个( )的有限序列。
    A. 数据表
    B. 字符
    C. 数据元素
    D. 数据项

  2. 以下( )是一个线性表.
    A. 由n个实数组成的集合
    B. 由100个字符组成的序列
    C. 所有整数组成的序列
    D. 邻接表

  3. 在线性表中,除了开始元素外,每个元素( )。
    A. 只有唯一的前趋元素
    B. 只有唯一的后继元素
    C. 有多个前趋元素
    D. 有多个后继元素

1.1.4 答案

  1. C 线性表是山具有相同数据类型的有限个数据元素组成的,数据元素是由数据项组成的。

  2. B 线性表的定义要求为有限序列,而C中序列的元素个数是无穷多个,C错误;而A中指定的是集合,集合中各元素没有前后驱关系,A错误;D是属于存储结构,线性表是一种逻辑结构,不要将二者混为一谈。只有B满足线性表定义的条件。

  3. A 线性表中,除了最后一个元素外,每个元素只有唯一的后继元素。

发布了57 篇原创文章 · 获赞 1690 · 访问量 76万+

猜你喜欢

转载自blog.csdn.net/u013733326/article/details/100332369