所以在对应的存储结构中,其存储结点也有相应划分。 对于原子结点,应包含值域; 对于表结点,应包含指示表头的表头指针域(指向
表中的第一个元素)和指示表尾的表尾指针域(指向除 去原表头元素后的广义表)。
4)D=( A , B ,C )
n=3,3个元素都是子表
5)E=(a, E)
n=2,a 为原子,E为子表
D=(A,B,C)=(( ),(e),(a,(b,c,d))),共享表
E=(a,E)=(a,(a,E))= (a,(a,(a,…….))),E为递归表
§5.4 广义表的类型定义
❖试用图形表示下列广义表
§5.4 广义表的类型定义 ❖广义表的特点
▪ 可共享
广义表的元素可以为其他广义表所共享 A = ( a , B ) =( a , ( b , c , d ) )
§5.4 广义表的类型定义
❖例1:求下列广义表的长度
1)A =( )
n=0,因为A是空表
2)B = ( e )
n=1,表中元素e是原子
3)C =( a ,( b , c , d ) ) n=2,a 为原子,(b, c, d)为子表
6. GetHead{ ( ( ) ) }= ( ) .
7. GetTail{ ( ( ) ) }= ( ) .
(a, b)
§5.4 广义表的类型定义 ❖注意:( )和( ( ) )的区别
前者为空表,长度=0,深度=1; 后者长度=1,深度=2,表头、表尾均为( )
§5.5 广义表的存储结构
❖广义表的存储结构
§5.4 广义表的类型定义
❖广义表的特点
▪ 有深度
广义表的深度定义为广义表中括弧的最大重数
如: H = (d, (e,( )))深度为3 注意:(1)空表的深度为1;