資料結構作業系統第五章答案

2021-03-04 09:54:50 字數 2488 閱讀 5601

}k++;n++;

}else if(a.data[k].i

else

}if(k>a.tu)

while(n<=b.tu)

else

while(k<=a.tu)

c.mu=a.mu;

c.nu=a.nu;

c.tu=p-1;

return true;

}5.23② 三元組表的一種變型是,從三元組表中去掉

行下標域得到二元組表,另設乙個行起始向量,其每

個分量是二元組表的乙個下標值,指示該行中第乙個

非零元素在二元組表中的起始位置。試編寫乙個演算法,

由矩陣元素的下標值i,j求矩陣元素。試討論這種方

法和三元組表相比有什麼優缺點。

要求實現以下函式:

status getelem(t2**atrix m, int i, int j, elemtype &e);

/* 求二元組矩陣的元素a[i][j]的值e */

稀疏矩陣的二元組順序表+行起始向量的型別t2**atrix的定義:

typedef structtwotuples;

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

status getelem(t2**atrix m, int i, int j, elemtype &e)

/* 求二元組矩陣的元素a[i][j]的值e */

}e=0;

return ok;

}5.26③ 試編寫乙個以三元組形式輸出用十字鍊錶

表示的稀疏矩陣中非零元素及其下標的演算法。

要求實現以下函式:

void outc**(crosslist m, void(*out3)(int, int, int));

/* 用函式out3,依次以三元組格式輸出十字鍊錶表示的矩陣 */

稀疏矩陣的十字鍊錶儲存表示:

typedef struct olnode olnode, *olink;

typedef struct crosslist;

void outc**(crosslist m, void(*out3)(int, int, int))

/* 用函式out3,依次以三元組格式輸出十字鍊錶表示的矩陣 */

}5.30③ 試按表頭、表尾的分析方法重寫求廣義表

的深度的遞迴演算法。

要求實現以下函式:

int glistdepth(glist ls);

/* return the depth of list */

廣義表型別glist的定義:

typedef enum elemtag;

typedef struct glnode ptr;

}un;

} *glist;

int glistdepth(glist ls)

/* return the depth of list */

return max+1;

}5.32④ 試編寫判別兩個廣義表是否相等的遞迴演算法。

要求實現以下函式:

status equal(glist a, glist b);

/* 判斷廣義表a和b是否相等,是則返回true,否則返回false */

廣義表型別glist的定義:

typedef enum elemtag;

typedef struct glnode ptr;

}un;

} *glist;

status equal(glist a, glist b)

/* 判斷廣義表a和b是否相等,是則返回true,否則返回false */

5.33④ 試編寫遞迴演算法,輸出廣義表中所有原子項

及其所在層次。

要求實現以下函式:

void outatom(glist a, int layer, void(*out2)(char, int));

/* 遞迴地用函式out2輸出廣義表的原子及其所在層次,layer表示當前層次 */

廣義表型別glist的定義:

typedef enum elemtag;

typedef struct glnode ptr;

}un;

} *glist;

void outatom(glist a, int layer, void(*out2)(char, int))

/* 遞迴地用函式out2輸出廣義表的原子及其所在層次,layer表示當前層次 */

}5.18⑤ 試設計乙個演算法,將陣列a中的元素

a[0..n-1]迴圈右移k位,並要求只用乙個元素

大小的附加儲存,元素移動或交換次數為o(n)。

要求實現以下函式:

void rotate(array1d &a, int n, int k);

一維陣列型別array1d的定義:

typedef elemtype array1d[maxlen];

void rotate(array1d &a, int n, int k)

資料結構第五章樹答案

第五章樹 答案 一 選擇題 1 二叉樹的第i層最多有 個結點。a 2i b.2ic.2i 1d.2i 1 2.對於一棵滿二叉樹,高度為h,共有n個結點,其中有m個葉子結點,則 a n h m b.h m 2n c.m h 1d.n 2h 1 3.在一棵二叉樹中,共有16個度為2的結點,則其共有個葉子...

資料結構作業系統答案

2.11 設順序表l中的資料元素遞增有序。試寫一演算法,將x插入到l的適當位置上,並保 持該表的有序性。要求實現下列函式 void insertorderlist sqlist l,elemtype x 在有序的順序表 l 中保序插入資料元素 x 順序表型別定義如下 typedef struct s...

資料結構習題第五章

5.1 選擇題 1 一維陣列和線性表的區別是 a a 前者長度固定,後者長度可變 b 後者長度固定,前者長度可變 c 兩者長度均固定d 兩者長度均可變 2 設w為乙個二維陣列,其每個資料元素wij 占用6個位元組,行下標i從0到8,列下標j從2到5,則二維陣列w的資料元素共占用 c 個位元組。a 4...