數(shù)據(jù)結(jié)構(gòu) 第五章數(shù)組和廣義表_第1頁
數(shù)據(jù)結(jié)構(gòu) 第五章數(shù)組和廣義表_第2頁
數(shù)據(jù)結(jié)構(gòu) 第五章數(shù)組和廣義表_第3頁
數(shù)據(jù)結(jié)構(gòu) 第五章數(shù)組和廣義表_第4頁
數(shù)據(jù)結(jié)構(gòu) 第五章數(shù)組和廣義表_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

數(shù)據(jù)結(jié)構(gòu)第五章數(shù)組和廣義表數(shù)據(jù)結(jié)構(gòu)第五章數(shù)組和廣義表數(shù)據(jù)結(jié)構(gòu)第五章數(shù)組和廣義表xxx公司數(shù)據(jù)結(jié)構(gòu)第五章數(shù)組和廣義表文件編號:文件日期:修訂次數(shù):第1.0次更改批準審核制定方案設(shè)計,管理制度第五章數(shù)組和廣義表:習題習

一、選擇題

1.假設(shè)以行序為主序存儲二維數(shù)組A[1..100,1..100],設(shè)每個數(shù)據(jù)元素占兩個存儲單元,基地址為10,則LOC(A[5,5])=(

)。

A.808

B.818

C.1010

D.1020

2.同一數(shù)組中的元素(

)。

A.長度可以不同

B.不限

C.類型相同

D.長度不限

3.二維數(shù)組A的元素都是6個字符組成的串,行下標i的范圍從0到8,列下標j的范圈從1到10。從供選擇的答案中選出應(yīng)填入下列關(guān)于數(shù)組存儲敘述中(

)內(nèi)的正確答案。

(1)存放A至少需要(

)個字節(jié)。

(2)A的第8列和第5行共占(

)個字節(jié)。

(3)若A按行存放,元素A[8]【5]的起始地址與A按列存放時的元素(

)的起始地址一致。

供選擇的答案:

(1)A.90

B.180

C.240

D.270

(2)A.108

B.114

C.54

D.60

(3)[8][5]

B.A[3][10]

[5][8]

[O][9]

4.數(shù)組與一般線性表的區(qū)別主要是(

)。

A.存儲方面

B.元素類型方面

C.邏輯結(jié)構(gòu)方面

D.不能進行插入和刪除運算

5.設(shè)二維數(shù)組A[1..m,1..n]按行存儲在數(shù)組B[1..m×n]中,則二維數(shù)組元素A[i,j]在一維數(shù)組B中的下標為(

)。

A.

(i-l)×n+j

B.(i-l)×n+j-l

C.i×(j-l)

D.j×m+i-l

6.所謂稀疏矩陣指的是(

)。A.零元素個數(shù)較多的矩陣B.零元素個數(shù)占矩陣元素中總個數(shù)一半的矩陣C.零元素個數(shù)遠遠多于非零元素個數(shù)且分布沒有規(guī)律的矩陣D.包含有零元素的矩陣7.對稀疏矩陣進行壓縮存儲的目的是(

)。A.便于進行矩陣運算

B.便于輸入和輸出C.節(jié)省存儲空間

D.降低運算的時間復(fù)雜度8.稀疏矩陣一般的壓縮存儲方法有兩種,即(

)。A.二維數(shù)組和三維數(shù)組

B.三元組和散列C.三元組和十字鏈表

D.散列和十字鏈表9.有一個100×90的稀疏矩陣,非0元素有10個,設(shè)每個整型數(shù)占兩字節(jié),則用三元組表示該矩陣時,所需的字節(jié)數(shù)是(

)。A.60

B.66

C.18000

D.3310.A[N,N]是對稱矩陣,將下面三角(包括對角線)以行序存儲到一維數(shù)組T[N(N+I)/2]中,則對任一上三角元素a[i][j]對應(yīng)T[k]的下標k是(

)。A.i(i-l)/2+j

B.j(j-l)/2+iC.i(j-i)/2+1

D.j(i-l)/2+111.已知廣義表L=((x,y,z),a,(u,t,w)),從L表中取出原子項t的運算是(

)

A.head(tail(tail(L)))

B.tail(head(head(taiI(L))))

C.head(tail(head(taiI(L))))

D.head(tail(head(tail(tail(L)))))12.廣義表A=(a,b,(c,d),(e,(f,g))),則下面式子的值為(

)。Head(TaiI(Head(TaiI(Tail(A)))))

A.(g)

B.(d)

13.廣義表((a,b,c,d))的表頭是(

),表尾是(

)。

B.(

)

C.(a,b,c,d)

D.(b,c,d)14.設(shè)廣義表L=((a,b,c)),則L的長度和深度分別為(

)。

和1

和3

和2

和315.下面說法不正確的是(

)。

A.廣義表的表頭總是一個廣義表

B.廣義表的表尾總是一個廣義表

C.廣義表難以用順序存儲結(jié)構(gòu)

D.廣義表可以是一個多層次的結(jié)構(gòu)二、填空題1.數(shù)組的存儲結(jié)構(gòu)采用____存儲方式。

2.二維數(shù)組A[10][20]每個元素占一個存儲單元,并且A[0][O]的存儲地址是200,若采用行序為主方式存儲,則A[6][12]的地址是____,若采用列序為主方式存儲,則A[6][12]的地址是____。3.三維數(shù)組a[4][5][6](下標從0開始計,a有4×5×6個元素),每個元素的長度是2,則a[2][3][4]的地址是____。(設(shè)a[0][0][0]的地址是1000,數(shù)據(jù)以行為主方式存儲)4.n階對稱矩陣a滿足a[i][j]=a[j][i],i,j=1..n,,用一維數(shù)組t存儲時,t的長度為____,

glistp;

{

glistq,h,t,s;

if(p==NULL)

q=NULL;

else

{

if____{q=(glist)malloc(sizeof(gnode));q->tag=0;

q->=p->;

}

elsef

____;

if______

{

t=reverse(p->val.ptr.tp);

s=t;

while(s->val.!=NULL)

s=s->val.;

s->val.ptr.tp=(glist)malloc(sizeof(gnode));

s=s->val.;s->tag=l;

s->val.=NULL;

s->

}

else

{

q=(glist)malloc(sizeof(gnode));q->tag=l;

q->

}

}

}

return(q);

}

三、判斷題

1.數(shù)組不適合作為任何二叉樹的存儲結(jié)構(gòu)。(

)

2.稀疏矩陣壓縮存儲后,必會失去隨機存取功能。(

)

3.數(shù)組是同類型值的集合。(

)

4.數(shù)組可看成線性結(jié)構(gòu)的一種推廣,因此與線性表一樣,可以對它進行插入,刪除等操作。(

)

5.一個稀疏矩陣Am*n采用三元組形式表示,若把三元組中有關(guān)行下標與列下標的值互換,并把m和n的值互換,則就完成了Am*n的轉(zhuǎn)置運算。(

)

6.廣義表的取表尾運算,其結(jié)果通常是個表,但有時也可是個單元素值。(

)

7.若一個廣義表的表頭為空表,則此廣義表亦為空表。(

)

8.廣義表中的元素或者是一個不可分割的原子,或者是一個非空的廣義表。(

)

9.所謂取廣義表的表尾就是返回廣義表中最后一個元素。(

)

10.廣義表的同級元素(直屬于同一個表中的各元素)具有線性關(guān)系。(

)

11.一個廣義表可以為其他廣義表所共享。(

)

四、簡答題

1.在以行序為主序的存儲結(jié)構(gòu)中,給出三維數(shù)組A2*3*4的地址計算公式(下標從0開始計數(shù))。

2.數(shù)組A中,每個元素A嘶]的長度均為32個二進位,行下標從-1到9,列下標從1到11,從首地址s開始連續(xù)存放主存儲器中,主存儲器字長為16位。求:

(1)存放該數(shù)組所需多少單元

(2)存放數(shù)組第4列所有元素至少需多少單元

(3)數(shù)組按行存放時,元素A[7,4]的起始地址是多少

(4)數(shù)組按列存放時,元素A[4,7]的起始地址是多少

3.將數(shù)列1,2,3,…,n*n,依次按下列方式存放在二維數(shù)組A[1..n,1一n]中。例如:n=5時,二維數(shù)組為

4.畫出下列廣義表的鏈接存儲結(jié)構(gòu),并求其深度。

((((),a,((b,c),(),d),(((e))))

5.已知題圖5-1為廣義表的鏈接存儲結(jié)構(gòu),寫出該圖表示的廣義表。

題圖5-1

6.設(shè)有廣義表K1(K2(K5(a,K3(c,d,e)),K6(b,k)),K3,K4(K3,f)),要求:

(1)指出K1的各個元素及元素的構(gòu)成。

(2)計算表K1,K2,K3,K4,Ks,K6的長度和深度。

(3)畫出K1的鏈表存儲結(jié)構(gòu)。

五、算法設(shè)計題

1.對于二維整型數(shù)組A[m,n],分別編寫相應(yīng)函數(shù)實現(xiàn)如下功能:

(1)求數(shù)組A4邊元素之和。

(2)當m=n時分別求兩條對角線上的元素之和,否則顯示m≠n的信息。

2.編寫子程序,將一維數(shù)組A[n*n](n<=10)中的元素按蛇形方陣存放在二維數(shù)組B[n][n]中,即:B[0][0]=A[0];

B[0][1]=A[1];B[1][0]=A[2];

B[2][0]=A[3];B[1][1]=A[4];B[0][3]=A[6];

依此類推,如圖題5-2所示:

3.編寫一個函數(shù)將兩個廣義表合并成一個廣義表。合并是指元素的合并,如兩個廣義表((a,b),(c))與(a,(e,f))合并后的結(jié)果是((a,b),(c),a,(e,f第五章數(shù)組與廣義表第5章數(shù)組與廣義表

一、選擇題

,A,B

,B

二、填空題

1.順序存儲方式。

2.313,327。

3.1166。

*(n+1)/2,i*(i+l)/2。

5.線性表。

6.由其余元素構(gòu)成的子表。

7.深度。

8.(),(()),2,2。

9.

head(head(tail(L))).

10.

(i==k)break,

i+l,

i-l,

i!=k。

11.p->tag==0,h=p->p->next!=NULL,q=t,reverse(h)。

三、判斷題

1.×

2.×

3.√

4.×

5.×

6.×

7.×

8.×

9.×

10.√

11.√

四、簡答題

1.LOC(A[i][j][k]=LOC(A[0][0][0]+i*12+j*4+k.

2.

(1)12l*32/16=242。

(2)11*32/16=22

(3)LOC(A[0][0])+(8*11+3)*32/16=LOC(A[0][0])+182.

(4)LOC(A[0][0])+182。

3.程序如下所示:

#defineNMAX10

#include

<stdio.h>

main()

{

inti,j,n,k,m;

inta

[NMAX][NMAX];

scanf("%d",&n);

m=l;

for

(i=O;

i<n;

i++)

{

for

(j=i*n,k=O;

j<(i+1)*n;

j++,k++)

a[i][k]=m++;

}

for(i=O;

i<n;

i++)

{for(j=O;j<n;j++)

printf("%4d",a[i][j]);

printf(¨\n");

}

}

4.深度為4廣義表的鏈接存儲結(jié)構(gòu)為:

5.((x,(y)),((()),(),(z)))

6.ki由k2,k3,k4構(gòu)成

k1

k2

k3

k4

k5

k6

長度:

3

2

3

2

2

2

深度:

4

3

1

2

2

l

五、算法設(shè)計題

1.

(1)

#define

M

5

#define

N

7

long

sumside(inta[M][N])

int

equal(GListNode

溫馨提示

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

評論

0/150

提交評論