陣列和廣義表習題

2021-10-01 07:01:48 字數 1571 閱讀 6567

設有陣列 a[i,j],陣列的每個元素長度為 3 位元組,i 的值為 1 到 8 ,j 的值為 1 到 10,陣列從記憶體首位址 ba 開始順序存放,當用以列為主存放時,元素 a[5,8] 的儲存首位址為?

答案: ba + 180。畫出矩陣圖,先算整列8×7,再算剩餘的5個。ba+(8×7+5-1)×3=ba+180。

設有乙個 10 階的對稱矩陣 a,採用壓縮儲存方式,以行序為主儲存,a[1][1] 為第一元素,其儲存位址為 1,每個元素佔乙個位址空間,則 a[8][5]的位址為?

答案:33。對稱矩陣的壓縮儲存,意思就是只存半個矩陣。因為矩陣對稱性,存半個矩陣就可以達到存整個矩陣的效果。題目等效為儲存10階的下三角矩陣。1+(1+7)×7/2+5-1=33。

將乙個 a[1..100,1..100] 的三對角矩陣,按行優先存入一維陣列b[1‥298] 中,a 中元素 a6665(即該元素下標 i = 66,j = 65),在 b 陣列中的位置 k 為?

答案:195。三對角矩陣時有三條對角線的矩陣,這三條對角線也是對稱的。對角線呈 「 \ 」 狀。第一行和最後一行有兩個元素,其餘行都是三個元素。1×2+(66-2)×3+1=195。

有乙個 100*90 的稀疏矩陣,非 0 元素有 10 個,設每個整型數占 2 位元組,則用三元組表示該矩陣時,所需的位元組數是?

答案:66。非零元有10個,表示三元組有11行,每行三個int型數字。11×3×2=66。

三維陣列 a[4][5][6](下標從 0 開始計,a 有 4*5*6 個元素),每個元素的長度是 2,則 a[2][3][4] 的位址是 。(設a[0][0][0] 的位址是 1000, 資料以行為主方式儲存)。

答案:1164。看清下標從0開始。看清下標從0開始。看清下標從0開始。三維陣列a[4][5][6]對應三維座標系中x軸0-5,y軸0-4,z軸0-3。資料一行一行儲存,一層滿了再存下一層,形成立體結構。(5×6×2+3×6+5-1)×2+1000=1164。

設廣義表 l = ((), ()), 則:head(l)是 ______ ;tail(l)是_______; l 的長度是 ______ ;深度是 _____ 。

答案:()   (())   2   2。小技巧:l從右往左數,遇到(之前,)數量就是深度。

下面說法正確的有( )。

a. 廣義表的表尾總是乙個廣義表

b. 廣義表的表頭總是乙個廣義表

c. 廣義表可以是乙個多層次的結構

d. 廣義表難以用順序儲存結構

答案:acd。廣義表一般用鏈式儲存,順序儲存不利於插入刪除資料,並且對儲存單元限制較多。

當廣義表中的每個元素都是原子時,廣義表便成了____?

答案:線性表。

已知廣義表 l = ((x,y,z),a,(u,t,w)),從 l 表中取出原子項 t 的運算是?

答案:tail(l)、tail(l)、head(l)、tail(l)、head(l)。

廣義表 a = (a,b,(c,d),(e,(f,g))),則head(tail(head(tail(tail(a)))))的值為?

答案:d。按步驟:a=(b,(c,d),(e,(f,g)))   a=((c,d),(e,(f,g)))   a=(c,d)   a=(d)   a=d。

廣義表和串 習題

已知head tail head s head tail tail s a 廣義表 s 滿足上式,則 s 為 a.a,b b,a b.b,a a b c.a a,b b d.b,a a,b e.a b b,a f.b b,a a 解 廣義表 的表頭是 表尾是 a.b.nil c.d.解 a,a。ni...

icoding 陣列與廣義表 習題

define maxsize 100 假設非零元個數的最大值為100 typedef struct triple typedef struct tsmatrix 在三元組中,i 和 j 從 1 開始計數,與數學中矩陣元素的編號一致 矩陣加法函式的原型為 bool add matrix const t...

陣列和廣義表

一 陣列 陣列是一組型別相同的資料元素構成。有一維陣列 二維陣列 n 維陣列。一般實現時,可以過載操作符,比較方便一點。二 矩陣 1 矩陣的加減,需要兩個矩陣擁有相同的行列數才可以。對應各個位置分別進行計算 2 矩陣的相乘,需要第乙個陣的列數等於第二個的行數。如c 0,0 a 的第一列分別乘以 b的...