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

2021-03-04 09:54:50 字數 2624 閱讀 7891

◆1.16② 試寫一演算法,如果三個整數x,y和z

的值不是依次非遞增的,則通過交換,令其為

非遞增。

要求實現下列函式:

void descend(int &x, int &y, int &z);

/* 按從大到小順序返回x,y和z的值 */

void descend(int &x, int &y, int &z)

/* 按從大到小順序返回x,y和z的值 */

1.17③ 已知k階裴波那契序列的定義為

f0=0, f1=0, ..., fk-2=0, fk-1=1;

fn=fn-1+fn-2+...+fn-k, n=k,k+1,...

試編寫求k階裴波那契序列的第m項值的函式演算法,

k和m均以值呼叫的形式在函式引數表中出現。

要求實現下列函式:

status fibonacci(int k, int m, int &f);

/* 如果能求得k階斐波那契序列的第m項的值f,則返回ok;*/

/* 否則(比如,引數k和m不合理)返回error

status fibonacci(int k, int m, int &f)

/* 求k階斐波那契序列的第m項的值f */

if(m if(m==k-1)

//初始化表

tmpresults=(int *)malloc(k*sizeof(int));

while(tmpmtmpresults+tmpm)=0;

tmpm++;

}//while

*(tmpresults+tmpm)=1;

tmpm=k;

//初始化結束

doif(curpos==k)curpos=1;

else curpos++;

tmpresults+curpos-1)=f;

}while(tmpm++ free(tmpresults);

return ok;

}1.18③ 假設有a、b、c、d、e五個高等院校進行田徑對抗賽,

各院校的單項成績均以存入計算機並構成一張表,表中每一

行的形式為

專案名稱性別校名成績得分

編寫演算法,處理上述**,以統計各院校的男、女總分和團

體總分,並輸出。

要求實現下列函式:

void scores(resulttype *result, scoretype *score);

/* 求各校的男、女總分和團體總分, 並依次存入陣列score */

/* 假設比賽結果已經儲存在result[ ]陣列中

/* 並以特殊記錄 (域scorce=0)*/

/* 表示結束

相關資料型別定義如下:

typedef enum ***;

typedef struct resulttype;

typedef struct scoretype;

void scores(resulttype *result, scoretype *score)

/* 求各校的男、女總分和團體總分, 並依次存入陣列score */

/* 假設比賽結果已經儲存在result[ ]陣列中

/* 並以特殊記錄 (域scorce=0)*/

/* 表示結束

i++;

} }

}◆1.19④ 試編寫演算法,計算i!×2^i的值並存入陣列

a[0..arrsize-1]的第i-1個分量中 (i=1,2,…,n)。

假設計算機中允許的整數最大值為maxint,則當n>

arrsize或對某個k(1≤k≤n)使k!×2^k>maxint時,應

按出錯處理。注意選擇你認為較好的出錯處理方法。

要求實現下列函式:

status series(int arrsize, int a);

/* 求i!*2^i序列的值並依次存入長度為arrsize的陣列a; */

/* 若所有值均不超過maxint,則返回ok,否則返回overflow */

status series(int arrsize, int a)

/* 求i!*2^i序列的值並依次存入長度為arrsize的陣列a; */

/* 若所有值均不超過maxint,則返回ok,否則返回overflow */

if((n1*n2)>maxint)

return overflow;

a[i-1]=n1*n2;

i++;

}if(i>arrsize+1)

return overflow;

else

return ok;

}◆1.20④ 試編寫演算法求一元多項式

p(x) = a0 + a1x + a2x^2 + ... + anx^n

的值p(x0),並確定演算法中每一語句的執行次數和整個演算法

的時間複雜度。注意選擇你認為較好的輸入和輸出方法。

要求實現下列函式:

float polynomial(int n, int a, float x0);

/* 求一元多項式的值p(x0

/* 陣列a的元素a[i]為i次項的係數,i=0,1,...,n */

float polynomial(int n, int a, float x)

資料結構作業系統答案

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

資料結構第一章習題

第一章習題 一 單項選擇題1.資料結構是一門研究非數值計算的程式設計問題中計算機的 以及它們之間的 和運算等的學科。a 操作物件 b 計算方法 c 邏輯儲存 d 資料映象 a 結構 b 關係 c 運算 d 演算法2.演算法分析的目的是 演算法分析的兩個主要方面是 a 找出資料結構的合理性 b 研究演...

第一章資料結構概念

1 集合結構 2 線性結構 3 樹形結構 4 圖狀結構 或網狀結構 資料結構的數學定義 資料結構是乙個二元組 data structure d,s 其中 d是資料元素的有限集 s是d上關係的有限集 與資料結構密切相關的是定義在資料結構上的一組操作,操作的種類和數目不同即使邏輯結構相同,這個資料結構的...