數組:按一定格式排列起來的具有相同類型的數據元素的集合。
?
二維數組:若一維數組中的數據元素又是一維數組結構,則稱為二維數組。?
同理,推廣到多維數組。若 n -1 維數組中的元素又是一個一維數組結構,則稱作 n 維數組。?
聲明格式:數據類型 ? 變量名稱[行數] [列數] ;
?
實現:一般都是采用順序存儲結構來表示數組。
?
二維數組兩種順序存儲方式:以行序為主序 (低下標優先) 、以列序為主序 (高下標優先)
一個二維數組 A,行下標的范圍是 1 到 6,列下標的范圍是 0 到 7,每個數組元素用相鄰的6 個字節存儲,存儲器按字節編址。那么,這個數組的體積是288個字節。
?
?廣義表(又稱列表 Lists)是n≥0個元素 a1, a2, …, an 的有限序列,其中每一個ai 或者是原子,或者是一個子表。
?
表頭:若 LS 非空 (n≥1 ),則其第一個元素 a1 就是表頭。
?表尾:除表頭之外的其它元素組成的表。記作 ?tail(LS) = (a2, ..., an)。?
?
(( ))?長度為 1,表頭、表尾均為 ( )
(a, (b, c))長度為 2,由原子 a 和子表 (b, c) 構成。表頭為 a ;表尾為 ((b, c))。
?
廣義表的長度定義為最外層所包含元素的個數
廣義表的深度定義為該廣義表展開后所含括號的重數。
“原子”的深度為 0 ; ?“空表”的深度為 1 。
?
取表頭運算 GetHead ?和取表尾運算 GetTail
GetHead(LS) = a1 ? ? ? ?GetTail(LS) = (a2, …, an)。
?
廣義表可看成是線性表的推廣,線性表是廣義表的特例。
?
廣義表的結構相當靈活,在某種前提下,它可以兼容線 性表、數組、樹和有向圖等各種常用的數據結構。
由于廣義表不僅集中了線性表、數組、樹和有向圖等常 見數據結構的特點,而且可有效地利用存儲空間,因此在計算機的許多應用領域都有成功使用廣義表的實例。?
?