《資料結構題集》答案第5章陣列和廣義表

2021-03-04 09:55:29 字數 1271 閱讀 5816

第五章陣列和廣義表

5.18

void rsh(int a[n],int k)//把陣列a的元素迴圈右移k位,只用乙個輔助儲存空間

//print_poly_descend

void get_all(int *a,int m,int i,int seq)//遞迴求出所有和為i的m個自然數

}//print_nomial

分析:本演算法的關鍵在於如何按照降冪順序輸出各項.這裡採用了乙個遞迴函式來找到所有滿足和為i的m個自然數作為各變元的指數.

只要先取第乙個數為j,然後再找到所有滿足和為i-j的m-1個自然數就行了.要注意j的取值範圍必須使剩餘m-1個自然數能夠找到,所以不能小於i-(m-1)*maxn,也不能大於i.只要找到了一組符合條件的數,就可以在儲存多項式係數的陣列中確定對應的項的係數的位置,並且在係數不為0時輸出對應的項.

5.21

void t**atrix_add(t**atrix a,t**atrix b,t**atrix &c)//三元組表示的稀疏矩陣加法

else

}//while

while(a.data[pa]==x) //插入a中剩餘的元素(第x行)

while(b.data[pb]==x) //插入b中剩餘的元素(第x行)

}//for

c.tu=pc;

}//t**atrix_add

5.22

void t**atrix_addto(t**atrix &a,t**atrix b)//將三元組矩陣b加到a上

else

}//while

while(a.data[pa]==x) //插入a中剩餘的元素(第x行)

while(b.data[pb]==x) //插入b中剩餘的元素(第x行)

}//for

a.tu=pc;

for(i=a.tu;i5.23

typedef struct dselem;

typedef struct d**atrix; //二元組矩陣型別

status d**atrix_locate(d**atrix a,int i,int j,int &e)//求二元組矩陣的元素a[i][j]的值e

selem;

typedef struct **atrix; //單下標二元組矩陣型別

status **atrix_locate(**atrix a,int i,int j,int &e)//求單下標二元組矩陣的元素a[i][j]的值e

return error;

}//**atrix_locate

《資料結構》第5章陣列和廣義表

第 5 章陣列和廣義表 一 選擇題 1.設有乙個10階的對稱矩陣a,採用壓縮儲存方式,以行序為主儲存,a11為第一元素,其儲存位址為1,每個元素佔乙個位址空間,則a85的位址為 燕山大學 2001 一 2 2分 a.13b.33c.18d.40 2.有乙個二維陣列a 1 6,0 7 每個陣列元素用相...

《資料結構》習題集 第5章陣列與廣義表

第5章陣列與廣義表 一 選擇題 1.在以下講述中,正確的是 b a 線性表的線性儲存結構優於鍊錶儲存結構 b 二維陣列是其資料元素為線性表的線性表 c 棧的操作方式是先進先出 d 佇列的操作方式是先進後出 2.若採用三元組壓縮技術儲存稀疏矩陣,只要把每個元素的行下標和列下標互換,就完成了對該矩陣的轉...

《資料結構題集》答案第2章線性表

第二章線性表 2.10 status deletek sqlist a,int i,int k 刪除線性表a中第i個元素起的k個元素 deletek 2.11 status insert sqlist sqlist va,int x 把x插入遞增有序表va中 insert sqlist 2.12 i...