【題目】試寫一演算法,如果三個整數a,b和c的值不是依次非遞增的,則通過交換,令其為非遞增。
要求實現下列函式:
void descend(int &a, int &b, int &c);
/* 通過交換,令 a >= b >= c */
#include
"allinclude.h"
//do not edit this line
void
descend
(int
&a,int
&b,int
&c)}
if(max==b)
else}if
(max==c)
else
}}
【題目】試編寫演算法求一元多項式 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 */
#include
"allinclude.h"
//do not edit this line
float
polynomial
(int n,
int a,
float x0)
return a[0]
+p;}
【題目】已知k階裴波那契序列的定義為f(0)=0, f(1)=0, …, f(k-2)=0, f(k-1)=1; f(n)=f(n-1)+f(n-2)+…+f(n-k), n=k,k+1,… 試編寫求k階裴波那契序列的第m項值的函式演算法,k和m均以值呼叫的形式在函式引數表**現。
要求實現下列函式:
status fibonacci(int k, int m, int &f);
/* 如果能求得k階斐波那契序列的第m項的值f,則返回ok;/
/ 否則(比如,引數k和m不合理)返回error */
#include
"allinclude.h"
//do not edit this line
status fibonacci
(int k,
int m,
int&f)
f = a[m];}
}return ok;
}
【題目】試編寫演算法,計算i!×2^i的值並存入陣列a[0…n-1]的第i-1個分量中 (i=1,2,…,n)。假設計算機中允許的整數最大值為maxint,則當對某個k(1≤k≤n)使k!×2^k>maxint時,應按出錯處理。注意選擇你認為較好的出錯處理方法。
要求實現下列函式:
status series(int a, int n);
/* 求i!*2^i序列的值並依次存入長度為n的陣列a;若所有 /
/ 值均不超過maxint,則返回ok,否則返回eoverflow */
#include
"allinclude.h"
//do not edit this line
status series
(int a,
int n)
return ok;
}
【題目】試寫一演算法,由長度為n的一維陣列a構建乙個序列s。
要求實現下列函式:
status createsequence(sequence &s, int n, elemtype a);
/ 由長度為n的一維陣列a構建乙個序列s,並返回ok。 /
/ 若構建失敗,則返回error */
序列的定義為:
typedef struct sequence;
#include
"allinclude.h"
//do not edit this line
status createsequence
(sequence &s,
int n, elemtype *a)
【題目】鍊錶的結點和指標型別定義如下
typedef struct lnode lnode, *linklist;
試寫一函式,構建乙個值為x的結點。
要求實現下列函式:
linklist makenode(elemtype x);
/* 構建乙個值為x的結點,並返回其指標。 /
/ 若構建失敗,則返回null。 */
#include
"allinclude.h"
//do not edit this line
linklist makenode
(elemtype x)
【題目】鍊錶的結點和指標型別定義如下
typedef struct lnode lnode, *linklist;
試寫一函式,構建長度為2且兩個結點的值依次為x和y的鍊錶。
要求實現下列函式:
linklist createlinklist(elemtype x, elemtype y);
/* 構建其兩個結點的值依次為x和y的鍊錶。/
/ 若構建失敗,則返回null。 */
#include
"allinclude.h"
//do not edit this line
linklist createlinklist
(elemtype x, elemtype y)
【題目】鍊錶的結點和指標型別定義如下
typedef struct lnode lnode, *linklist;
試寫一函式,構建長度為2的公升序鍊錶,兩個結點的值
分別為x和y,但應小的在前,大的在後。
要求實現下列函式:
linklist createordllist(elemtype x, elemtype y);
/* 構建長度為2的公升序鍊錶。 /
/ 若構建失敗,則返回null。 */
#include
"allinclude.h"
//do not edit this line
linklist createordllist
(elemtype x, elemtype y)
p1->data = x;
p1->next = p2;
p2->data = y;
p2->next =
null
;return p1;
}
廣工 AnyviewC 資料結構習題 第五章
g m,n 0 當m 0,n 0 g m,n g m 1,2n n 當m 0,n 0intg int m,int n 如果 m 0 或 n 0 則返回 1 f n n 1 當n 0 f n nf n 2 當n 0intf int n 如果 n 0 則返回 1 sqrt a,p,e p 當 pp a ...
廣工資料結構第五單元
題目 假設以二維陣列g 1 m 1 n 表示乙個影象 區域,g i j 表示該區域中點 i,j 所具顏色,其值 為從0到k的整數。試編寫遞迴演算法,將點 i0,j0 所在 區域的顏色置換為顏色c。約定與 i0,j0 同色的上 下 左 右的鄰接點為同色區域的點。表示影象區域的型別定義如下 typede...
資料結構 資料結構緒論
資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...