广义表

广义表的定义:

在广义表中约定:
① 第一个元素是表头,而其余元素组成的表称为表尾; 
② 用小写字母表示原子类型,用大写字母表示广义表。 

广义表与线性表的区别和联系?
广义表中元素既可以是原子类型,也可以是广义表; 当每个元素都为原子且类型相同时,就是线性表。

特点:
广义表_第1张图片


特别提示:任何一个非空表,表头可能是原子,也可能是广义表;但表尾一定是广义表。



广义表_第2张图片



两种特殊的基本操作: 
         GetHead( L) ——取表头(可能是原子或列表); 
         GetTail(L )   ——取表尾(一定是列表) 。

例如:


广义表_第3张图片


广义表可以采用顺序存储结构吗?
         由于广义表中的数据元素的类型不统一,因此难以采用顺序存储结构来存储。 
如何采用链接存储结构存储广义表?
         若广义表不空,则可分解为表头和表尾;反之,一对确定的表头和表尾可唯一地确定一个广义表。



广义表的存储结构——头尾表示法

广义表_第4张图片


广义表_第5张图片




你可能感兴趣的:(数据结构,广义表)