线性表(线性表的类型定义)

Posted 大扑棱蛾子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性表(线性表的类型定义)相关的知识,希望对你有一定的参考价值。

线性表: (linear_list)是最常用且最简单的一种数据结构。简言之一个线性表是n( n ≥ 0 n \\ge 0 n0)个数据元素的有限序列。其中 n n n为表长,当 n = 0 n=0 n=0时,该表为空表。

在稍微复杂的线性表中,一个数据元素可以由若干个数据项(item)组成。在这种情况下,常把数据元素称为记录(record),含有大量记录的线性表又称文件。

在同一线性表中的元素必定具有相同的特性,即属于同一数据对象。

在Java等高级语言中虽然可以存储不同类型的数据,但是底层的抽象数据类型是相同的。以LinkedList为例,最终存储在线性表中的结构如下:

private static class Node<E>   
    E item;  
    Node<E> next;  
    Node<E> prev;  
  
    Node(Node<E> prev, E element, Node<E> next)   
  this.item = element;  
        this.next = next;  
        this.prev = prev;  
      

这里的E为泛型,但对于线性表来说存储的实际上是Node这个抽象数据类型。

L L L命名为线性表,则一般表示为:
L = ( a 1 , a 2 , . . .    , a i − 1 , a i , a i + 1 , . . .    , a n ) L = (a_1, a_2,... \\;,a_i-1, a_i,a_i+1,... \\;, a_n) L=(a1,a2,...,ai1,ai,ai+1,...,an)
其中 a 1 a_1 a1称为首项, a n a_n an称为尾项, a i − 1 a_i-1 ai1称为 a i a_i ai的直接前驱, a i + 1 a_i+1 ai+1称为 a i a_i ai的直接后驱。

在非空表中每个数据元素都有一个确定的位置。

线性表的特点

  • 表中的元素个数是有限的
  • 表中元素具有逻辑上的顺序性,在序列中各个元素排序有其先后次序
  • 表中元素都是数据元素,每个元素都是单个元素
  • 表中元素的数据类型都相同
  • 表中元素具有抽象性,即讨论元素间一对一的逻辑关系,而不考虑元素酒精表示的内容
  • 线性表是一种逻辑结构,表示元素之间一对一相邻的关系

线性表抽象数据类型的定义:

ADT List
	数据对象: D = a_i | a_i ∈ ElemSet, i=1,2,3,...,n, n ≥ 0
	数据关系: R1 = <a_i-1, a_i> | a_i-1,a_i ∈ D, i=1,2,3,...,n
	基本操作:
		InitList(&L):构造一个空的线性表L
		DestroyList(&L):销毁线性表,并释放线性表L所占用的内存空间。
		ClearList(&L):将L重置为空
		ListEmpty(L):判断线性表释放为空
		ListLength(L):返回L中数据元素的个数
		GetElem(L, i, &e):用e返回L中第i个数据元素的值
		LocateElem(L, e, compare()):返回L中第1个与e满足关系compare()的数据元素的位序。若这样的数据不存在,则返回值为0。(简单的理解就是获取元素e在链表L中的位置,如果不存在则返回0。)
		PriorElem(L, cur_e, &pre_e):若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的前驱,否则操作失败,pre_e无定义。
		NextElem(L, cur_e, &next_e):若cur_e是L的数据元素,且不是最后一个,则用next_e返回它的后继,否则操作失败,next_e无定义。
		ListInsert(&L, i, e):在L中第i个位置之前插入新的数据元素e,L的长度加1
		ListDelete(&L, i, e):删除L中的第i个数据元素,并用e返回其值,L的长度减1
		ListTraverse(L, visit()):依次对L的每个数据元素调用函数visit()。一旦visit()失败,则操作失败。
 ADT List

&表示引用类型。这里链表的索引位置是从1开始的,但是在程序中一般索引位置是从0开始的,所以这里要做好区分。

以上是关于线性表(线性表的类型定义)的主要内容,如果未能解决你的问题,请参考以下文章

线性表—顺序表

线性表—顺序表

线性表—顺序表

线性表的概念

单链表浅析

数据结构之线性表