这是我的“朝闻道”知识分享大赛的第三篇文章。
1.什么是广义表?广义表是线性表的推广,也称为列表。一般记作:LS=(a,b,c,d...n)
LS也是广义表的一个名称。
2.其中a,b,c可以是单个元素也可以是一个广义表。一般情况,小写字母表示原子,大写字母表示:广义表。
3.特殊情况:A=( )是一个空表,其长度为0,注意B=(())与之不同,B的长度是1.其表头和表尾都是()。
4.取表头:取的是非空广义表的第一个元素,可以是广义表也可以是原子。
5.存储结构:一般采用链式存储结构,分为头尾链表的存储结构和扩展线性表的存储结构。
6.头尾链表的存储结构需要两个不同的结点:表节点(表示广义表)和原子结点(表示原子)
表结点由标志域(tag=1)、指向表头的指针域(hp)和指向表尾的指针域(tp)组成
原子结点由标志域(tag=0)和值域(atom)组成
注意 非空的广义表,它的表头指针域均指向一个表节点
最高层的表结点的个数表示该广义表的个数。