问答题 画出下列广义表的两种存储结构图(0,A,B,(C,D),(E,F)。【南京航空航天大学1999三(10分)】
【正确答案】正确答案:广义表的第一种存储结构的理论基础是,非空广义表可唯一分解成表头和表尾两部分,而由表头和表尾可唯一构成一个广义表。这种存储结构中,原子和表采用不同的结点结构(“异构”,即结点域个数不同)。原子结点两个域:标志域tag=0表示原子结点,域DATA表示原子的值;子表结点三个域:tag=1表示子表,hp和tp分别是指向表头和表尾的指针。在画存储结构时,对非空广义表不断进行表头和表尾的分解,表头可以是原子,也可以是子表,而表尾一定是表(包括空表)。下面是本题的第一种存储结构图。广义表的第二种存储结构的理论基础是,非空广义表最高层元素间具有逻辑关系:第一个元素无前驱有后继,最后一个元素无后继有前驱,其余元素有唯一前驱和唯一后继。有人将这种结构看作扩充线性结构。这种存储结构中,原子和表均采用三个域的结点结构(“同构”)。结点中都有一个指针域指向后继结点。原子结点中还包括标志域tag=0和原子值域DATA;子表结点还包括标志域tag=1和指向子表的指针hp。在画存储结构时,从左往右一个元素一个元素地画,直至最后一个元素。下面是本题的第二种存储结构图。
【答案解析】