數據結構期末復習第五章數組和廣義表


 數據結構期末復習第五章 數組和廣義表

     二維數組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

將四個備選答案代入,可得正確答案B
2.  二維數組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<j)的位置k的關系為( B  )。
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<j)這就需要將備選答案A中i(i一1)/2+j的i與j互換

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM