資料結構期末複習第五章陣列和廣義表

2022-02-14 06:27:55 字數 3085 閱讀 7098

資料結構期末複習第五章 陣列和廣義表

二維陣列a[m][n]按行優先 定址計算方法,每個陣列元素佔據d 個位址單元。

設陣列的基址為loc(a11) :loc(aij)=loc(a11)+((i-1)*n+j-1)*d

設陣列的基址為loc(a00) :loc(aij)=loc(a00)+( i*n+j )*d

二維陣列a[m][n]按列優先 定址計算方法,每個陣列元素佔據d 個位址單元。

設陣列的基址為loc(a11) :loc(aij)=loc(a11)+((j-1)*m+i-1)*d

設陣列的基址為loc(a00) :loc(aij)=loc(a00)+( j*m+i)*d

1.  二維陣列a的每個元素是由6個字元組成的串,其行下標i=0,1,…,8,列下標j=1,2,…,10。若a按行先儲存,元素a[8,5]的起始位址與當a按列先儲存時的元素( b  )的起始位址相同。設每個字元佔乙個位元組。

a. a[8,5]                              b. a[3,10]

c. a[5,8]                              d. a[0,9]

解析:元素a[8,5]的起始位址與當a按列先儲存時的a[i,j]元素的起始位址相同,

即8×10+5—1=(j一1)×9+i,將四個備選答案代入,可得正確答案

我的理解:

本題中:

二維陣列a[9,10]按行優先定址計算方法,每個元素六個字元,每個陣列元素佔據4個位址單元,

設陣列的基址為loc(0,1):loca(8,5)=loc(a01)+((8*10)+(5-1))*6*1

二維陣列a[9,10]按列優先定址計算方法,每個元素六個字元,每個陣列元素佔據4個位址單元,

設陣列的基址為loc(0,1):loca(i,j)=loc(a01)+((j-1)*9+i)*6*1

元素a[8,5]的起始位址與當a按列先儲存時的a[i,j]元素的起始位址相同,

即:loc(8,5)=loc(i,j)

((8*10)+(5-1))*6*1=((j-1)*9+i)*6*1

84 *6*1

=((j-1)*9+i) *6*1

84=(j-1)*9+i

將四個備選答案代入,可得正確答案

b2.  二維陣列n的每個元素佔4個儲存單元,行下標i的範圍從0到4,列下標j的範圍從0到5,n按行儲存時元素n[3][5]的起始位址與n按列儲存時元素(  b )的起始位址相同。

a. n[2][4]                        b. n[3][4]

c. n[3][5]                        d. n[4][4]

分析:行下標i的範圍從0到4,列下標j的範圍從0到5說明陣列為二維陣列a[5][6]

元素n[3,5]的起始位址與當n按列先儲存時元素的起始位址相同,

即3*6+5=j*5+i,將四個備選答案代入,可得正確答案b

具體分析方法同上。

3.  設n階方陣是乙個上三角矩陣,則需儲存的元素個數為( d )

a .n                              b .n*n

c .n*n/2                          d .n(n+1)/2

解析:1 2 3 4 5 6 7 8 ... n

1 1 1 1 1 1 1 1 ... 1  個數為n

0 1 1 1 1 1 1 1 ... 1  個數為n-1

0 0 1 1 1 1 1 1 ... 1  個數為n-2

0 0 0 1 1 1 1 1 ... 1  個數為n-3

...                  ...

0 0 0 0 0 0 0 0 ... 1  個數為1

需要儲存的元素個數為:

n+(n-1)+...+2+1 = n(n+1)/2

4.  設有乙個10階的對稱矩陣a,採用壓縮儲存方式,以行序為主儲存,a11為第一元素,其儲存位址為1,每個元素佔乙個位址空間,則a85(即該元素下標ij=85)的位址為( b  )。

a. 13             b. 33        c. 18              d. 40

解析:這裡陣列下標從1開始,只儲存其下三角形元素,在a8,5的前面有7行,第1行有1個元素,第2行有2個元素,…,第7行有7個元素,這7行共有(1+7)×7/2=2 8個元素,在第8行中,a8,5的前面有4個元素,所以,a8,5前有28+4=32個元素,其位址為33。

--------------------------------

1 2 3 4 5 6 7 9 9 3

2 3 4 5 6 7 8 9 3 4

3 4 5 6 7 8 9 3 4 2

4 5 6 7 8 9 3 4 2 6

5 6 7 8 9 3 4 2 6 8

6 7 8 9 3 4 2 6 8 3

7 8 9 3 4 2 6 8 3 4

8 9 3 4

2 6 8 3 4 2

9 3 4 2 6 8 3 4 2 5

3 4 2 6 8 3 4 2 5 6

-----------------------------------------

5.  若對n階對稱矩陣a[1..n,1..n]以行序為主序方式下將其下三角的元素(包括主對角線上的所有元素)依次存放於一維陣列b[1..n(n+1)/2]中,則在b中確定aij (i

a .i*(i-1)/2+j               b .j*(j-1)/2+i     

c .i*(i+1)/2+j               d .j*(j+1)/2+i

解析:對稱矩陣a中的下三角的元素存放於b陣列中,

若求aij(i>j)的位置k的關係,答案為a,即i(i一1)/2+j

但是,本題求aij (

i

)這就需要將備選答案a中i(i一1)/2+j

的i與j互換,

因此正確答案為b,即j(j一1)/2+i

軟體構造期末複習 第五章

軟體的可維護性 錯誤修復 改善效能 度量方法。原則方法 目標 設計方法 耦合與內聚 模組之間聯絡越多,耦合度越高 應高內聚,低耦合 著重符號 單一責任原則 每個模組 類 不應因為超過乙個原因而發生改變 乙個類應只完成一種需求 一類操作 開放封閉原則 著重中著重符號 liskov替換原則 保證子類能夠...

廣工 AnyviewC 資料結構習題 第五章

g m,n 0 當m 0,n 0 g m,n g m 1,2n n 當m 0,n 0intg int m,int n 如果 m 0 或 n 0 則返回 1 f n n 1 當n 0 f n nf n 2 當n 0intf int n 如果 n 0 則返回 1 sqrt a,p,e p 當 pp a ...

資料結構(第五章)

樹下 第一講一.堆 什麼是堆?在講堆之前,我們先看看什麼是優先佇列。優先佇列 是一種特殊的佇列,從名稱上看,優先,顧名思義,取出的元素是按照一定的優先順序出隊的,而不是元素進入佇列的先後順序。優先佇列的完全二叉樹表示 堆的兩個特性 結構性 用陣列表示的完全二叉樹。有序性 任一結點的關鍵字是其子樹所有...