數據結構習題廣義線性表多維數組和廣義表_第1頁
數據結構習題廣義線性表多維數組和廣義表_第2頁
數據結構習題廣義線性表多維數組和廣義表_第3頁
數據結構習題廣義線性表多維數組和廣義表_第4頁
數據結構習題廣義線性表多維數組和廣義表_第5頁
已閱讀5頁,還剩4頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第 4 章 廣義線性表多維數組和廣義表 課后習題講解 1. 填空 數組通常只有兩種運算:( )和( ),這決定了數組通常采用( )結構來實現存儲?!窘獯稹看嫒?,修改,順序存儲【分析】數組是一個具有固定格式和數量的數據集合,在數組上一般不能做插入、刪除元素的操作。除了初始化和銷毀之外,在數組中通常只有存取和修改兩種操作。 二維數組A中行下標從10到20,列下標從5到10,按行優先存儲,每個元素占4個存儲單元,A105的存儲地址是1000,則元素A1510的存儲地址是( )。【解答】1140【分析】數組A中每行共有6個元素,元素A1510的前面共存儲了(15-10)×6+5個元素,每個元

2、素占4個存儲單元,所以,其存儲地址是1000+140=1140。 設有一個10階的對稱矩陣A采用壓縮存儲,A00為第一個元素,其存儲地址為d,每個元素占1個存儲單元,則元素A85的存儲地址為( )?!窘獯稹縟+41【分析】元素A85的前面共存儲了(1+2+8)+5=41個元素。 稀疏矩陣一般壓縮存儲方法有兩種,分別是( )和( )?!窘獯稹咳M順序表,十字鏈表 下面的說法中,不正確的是()A 數組是一種線性結構 B 數組是一種定長的線性結構 C 除了插入與刪除操作外,數組的基本操作還有存取、修改、檢索和排序等D 數組的基本操作有存取、修改、檢索和排序等,沒有插入與刪除操【解答】C【分析】數組

3、屬于廣義線性表,數組被創建以后,其維數和每維中的元素個數是確定的,所以,數組通常沒有插入和刪除操作。 對特殊矩陣采用壓縮存儲的目的主要是為了()A 表達變得簡單 B 對矩陣元素的存取變得簡單C 去掉矩陣中的多余元素 D 減少不必要的存儲空間【解答】D【分析】在特殊矩陣中,有很多值相同的元素并且他們的分布有規律,沒有必要為值相同的元素重復存儲。 下面()不屬于特殊矩陣。A 對角矩陣 B 三角矩陣 C 稀疏矩陣 D 對稱矩陣 【解答】C 若廣義表A滿足Head(A)=Tail(A),則A為( )A ( ) B ( ) C ( ),( ) D( ),( ),( )【解答】B 下面的說法中,不正確的是

4、()A 廣義表是一種多層次的結構 B 廣義表是一種非線性結構C 廣義表是一種共享結構 D 廣義表是一種遞歸【解答】B【分析】從各層元素各自具有的線性關系講,廣義表屬于線性結構。 下面的說法中,不正確的是()A 對稱矩陣只須存放包括主對角線元素在內的下(或上)三角的元素即可。B 對角矩陣只須存放非零元素即可。C 稀疏矩陣中值為零的元素較多,因此可以采用三元組表方法存儲。D 稀疏矩陣中大量值為零的元素分布有規律,因此可以采用三元組表方法存儲【解答】D【分析】稀疏矩陣中大量值為零的元素分布沒有規律,因此采用三元組表存儲。如果零元素的分布有規律,就沒有必要存儲非零元素的行號和列號,而需要按其壓縮規律找

5、出相應的映象函數。3. 判斷題 數組是一種復雜的數據結構,數組元素之間的關系既不是線性的,也不是樹形的?!窘獯稹垮e。例如二維數組可以看成是數據元素為線性表的線性表。 使用三元組表存儲稀疏矩陣的元素,有時并不能節省存儲空間。【解答】對。因為三元組表除了存儲非零元素值外,還需要存儲其行號和列號。 稀疏矩陣壓縮存儲后,必會失去隨機存取功能?!窘獯稹繉ΑR驗閴嚎s存儲后,非零元素的存儲位置和行號、列號之間失去了確定的關系。 線性表可以看成是廣義表的特例,如果廣義表中的每個元素都是單元素,則廣義表便成為線性表?!窘獯稹繉?。 若一個廣義表的表頭為空表,則此廣義表亦為空表。【解答】錯。如廣義表L=( ),(a

6、,b)的表頭為空表,但L不是空表。4一個稀疏矩陣如圖4-4所示,寫出對應的三元組順序表和十字鏈表存儲表示。【解答】對應的三元組順序表如圖4-5所示,十字鏈表如圖4-6所示。5已知A為稀疏矩陣,試從空間和時間角度比較采用二維數組和三元組順序表兩種不同的存儲結構完成求 運算的優缺點?!窘獯稹吭O稀疏矩陣為m行n列,如果采用二維數組存儲,其空間復雜度為(m×n);因為要將所有的矩陣元素累加起來,所以,需要用一個兩層的嵌套循環, 其時間復雜度亦為(m×n)。如果采用三元組順序表進行壓縮存儲,假設矩陣中有t個非零元素,其空間復雜度為(t),將所有的矩陣元素累加起來只需將 三元組順序表掃

7、描一遍,其時間復雜度亦為(t)。當t << m×n時,采用三元組順序表存儲可獲得較好的時、空性能。6設某單位職工工資表ST由“工資”、“扣除”和“實發金額”三項組成,其中工資項包括“基本工資”、“津貼”和“獎金”,扣除項包括“水”、“電”和“煤氣” 。 請用廣義表形式表示所描述的工資表ST,并用表頭和表尾求表中的“獎金”項; 畫出該工資表ST的存儲結構?!窘獯稹?ST=(基本工資,津貼,獎金),(水,電,煤氣),實發金額)Head(Tail(Tail(Head(ST)=獎金 工資表ST的頭尾表示法如圖4-7所示。7若在矩陣A中存在一個元素ai,j(0in-1,0jm-1)

8、,該元素是第i行元素中最小值且又是第j列元素中最大值,則稱此元素為該矩陣的一個馬鞍點。假設以二維數組存儲矩陣A,試設計一個求該矩陣所有馬鞍點的算法,并分析最壞情況下的時間復雜度?!窘獯稹吭诰仃囍兄鹦袑ふ以撔兄械淖钚≈担缓髮ζ渌诘牧袑ふ易畲笾?,如果該列上的最大值與該行上的最小值相等,則說明該元素是鞍點,將它所在行號和列號輸出。具體算法如下:分析算法,外層for循環共執行n次,內層第一個for循環執行m次,第二個for循環最壞情況下執行n次,所以,最壞情況下的時間復雜度為(mn+n2)。 學習自測及答案 1二維數組M中每個元素的長度是3個字節,行下標從0到7,列下標從0到9,從首地址d開始存儲

9、。若按行優先方式存儲,元素M75的起始地址為( ),若按列優先方式存儲,元素M75的起始地址為( )。【解答】d+22,d+1412一個n×n的對稱矩陣,按行優先或列優先進行壓縮存儲,則其存儲容量為( )?!窘獯稹縩(n+1)/23設n行n列的下三角矩陣A(行列下標均從1開始)已壓縮到一維數組S1Sn(n+1)/2中,若按行優先存儲,則Aij在數組S中的存儲位置是( )?!窘獯稹縤×(i-1)/2+j4已知廣義表LS=(a, (b, c), (d, e, a),運用Head函數和Tail函數取出LS中原子d的運算是( )?!窘獯稹縃ead(Head(Tail(Tail(LS

10、)5廣義表(a, b, (c, (d)的表尾是( )。A (d) B (c,(d) C b,(c,(d) D (b,(c,(d)【解答】D6設有三對角矩陣An×n(行、列下標均從0開始),將其三條對角線上的元素逐行存于數組B3n-2中,使得Bk=aij求: 用i, j表示k的下標變換公式; 用k表示i, j的下標變換公式?!窘獯稹?要求i, j表示k的下標變換公式,就是要求在k之前已經存儲了多少個非零元素,這些非零元素的個數就是k的值。元素aij求所在的行為i,列為j,則在其前面的非零元素的個數是;k=2 + 3(i1)+( ji + 1)= 2i+ j。 因為k和i, j之間是一一對應的關系,k

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論