(五)、广义表的特性
- 广义表中的数据元素是有相对次序的。
- 广义表的长度定义为最外层包含元素的个数。
- 广义表的深度定义为所含括弧的重数,其中原子的深度为0,空表的深度为1。
- 广义表可以共享,一个广义表可以被其他广义表共享,这种共享广义表称为再入表。
- 广义表可以是一个递归的表,一个广义表可以是自己的子表,这种广义表称为递归表。递归表的深度是无穷值,而长度是有限值。
表头 (Head) 和表尾 (Tail) :当广义表非空时,第一个元素为广义表的表头,其余元素组成的表是广义表的表尾。
GetHead(B)=d GetTail(B)=(e) 加括号表示e的广义表
GetHead(D)=B GetTail(D)=(C) 加括号表示C的广义表
GetHead((a)) =(a) GetTail((a)) = ( )
(六)、广义表的存储结构
- 头尾链表存储结构
1代表广义表结点,0代表原子结点
- 扩展线性表存储结构
十二、树和二叉树
(一)、树的基本概念
树(tree)是由n(n≥0)个结点(或元素)组成的有限限集合(记为T)。
如果n=0,它是一棵空树,这是树的特例;
如果n>0,这n个结点中有且仅有一个结点作为树的根结点,简称为根(root),其余结点可分为m(m≥0)个互不相交的有限集 T、,Tz,…,Tm,其中每个子集本身又是一棵符合本定义的树,称为根结点的子树(subt ree)。