第十三章 數據結構 廣義表的定義

定義

廣義表簡稱表,它是線性表的推廣。一個廣義表是n(n≥0)個元素的一個序列,若n=0時則稱爲空表。

設ai爲廣義表的第i個元素,則廣義表GL的一般表示與線性表相同:
GL=(a1,a2,…,ai,…,an)
其中n表示廣義表的長度,即廣義表中所含元素的個數,n≥0。如果ai是單個數據元素,則ai是廣義表GL的原子;如果ai是一個廣義表,則ai是廣義表GL的子表

典型例題

在這裏插入圖片描述在這裏插入圖片描述

解析:GetTail(((a,b),(c,d))) = ((c,d))
GetHead( ((c,d)) ) = (c,d)
PS:Tail((a)) = (a);
Head((a)) = a;

簡要概念

(1)廣義表中的數據元素有相對次序;
(2)廣義表的長度定義爲最外層包含元素個數;
(3)廣義表的深度定義爲所含括弧的重數。其中原子的深度爲0,空表的深度爲1;
(4)廣義表可以共享;一個廣義表可以爲其他廣義表共享;這種共享廣義表稱爲再入表;
(5)廣義表可以是一個遞歸的表。一個廣義表可以是自已的子表。這種廣義表稱爲遞歸表。遞歸表的深度是無窮值, 長度是有限值;
(6) 任何一個非空廣義表GL均可分解爲表頭head(GL) = a1和表尾tail(GL) = ( a2,…,an) 兩部分。
(7) 廣義表的取表尾運算,是非空廣義表除去表頭元素,剩餘元素組成的表。
(8) 當廣義表中的每個元素都是原子時,廣義表便成了線性表。
(9) 廣義表是一種遞歸的數據結構,因此很難爲每個廣義表分配固定大小的存儲空間,所以其存儲結構只好採用動態鏈式結構。
(10) 若一個廣義表的表頭爲空表,則此廣義表亦爲空表。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章