清華數(shù)據(jù)結(jié)構(gòu)習(xí)題集答案(C語言版嚴(yán)蔚敏)



《清華數(shù)據(jù)結(jié)構(gòu)習(xí)題集答案(C語言版嚴(yán)蔚敏)》由會(huì)員分享,可在線閱讀,更多相關(guān)《清華數(shù)據(jù)結(jié)構(gòu)習(xí)題集答案(C語言版嚴(yán)蔚敏)(123頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 清華數(shù)據(jù)結(jié)構(gòu)習(xí)題集答案 (C 語言版嚴(yán)蔚敏 ) 第 1 章 緒論 1.1 簡(jiǎn)述下列術(shù)語:數(shù)據(jù),數(shù)據(jù)元素、數(shù)據(jù)對(duì)象、數(shù)據(jù)結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)、數(shù)據(jù)類型和抽象數(shù)據(jù)類型。 解:數(shù)據(jù) 是對(duì)客觀事物的符號(hào)表示。在計(jì)算機(jī)科學(xué)中是指所有能輸入到計(jì)算機(jī)中并被計(jì)算機(jī)程序處理的符號(hào)的總稱。 數(shù)據(jù)元素 是數(shù)據(jù)的基本單位,在計(jì)算機(jī)程序中通常作為一個(gè)整體進(jìn)行考慮和處理。 數(shù)據(jù)對(duì)象 是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個(gè)子集。 數(shù)據(jù)結(jié)構(gòu) 是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。 存儲(chǔ)結(jié)構(gòu) 是數(shù)據(jù)
2、結(jié)構(gòu)在計(jì)算機(jī)中的表示。 數(shù)據(jù)類型 是一個(gè)值的集合和定義在這個(gè)值集上的一組操作的總稱。 抽象數(shù)據(jù)類型 是指一個(gè)數(shù)學(xué)模型以及定義在該模型上的一組操作。是對(duì)一般數(shù)據(jù)類型的擴(kuò)展。 1.2 試描述數(shù)據(jù)結(jié)構(gòu)和抽象數(shù)據(jù)類型的概念與程序設(shè)計(jì)語言中數(shù)據(jù)類型概念的區(qū)別。 解:抽象數(shù)據(jù)類型包含一般數(shù)據(jù)類型的概念,但含義比一般數(shù)據(jù)類型更廣、更抽象。一般數(shù)據(jù)類型由具體語言系統(tǒng)內(nèi)部定義,直接提供給編程者定義用戶數(shù)據(jù),因此稱它們?yōu)轭A(yù)定義數(shù)據(jù)類型。抽象數(shù)據(jù)類型通常由編程者定義,包括定義它所使用的數(shù)據(jù)和在這些數(shù)據(jù)上所進(jìn)行的操作。在定義抽象數(shù)據(jù)類型中的數(shù)據(jù)部分和操作部分時(shí),要求只定義到數(shù)據(jù)的邏輯結(jié)構(gòu)和操作
3、說明,不考慮數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和操作的具體實(shí)現(xiàn),這樣抽象層次更高,更能為其他用戶提供良好的使用接口。 1.3 設(shè)有數(shù)據(jù)結(jié)構(gòu) (D,R) ,其中 D d1, d 2, d 3, d 4 , R r , r d1, d 2 , d 2,d 3 , d 3, d 4 試按圖論中圖的畫法慣例畫出其邏輯結(jié)構(gòu)圖。 解: 1.4 試仿照三元組的抽象數(shù)據(jù)類型分別寫出抽象數(shù)據(jù)類型復(fù)數(shù)和有理數(shù)的定義(有理數(shù)是其分子、分母均 為自然數(shù)且分母不為零的分?jǐn)?shù)) 。 解: ADT Complex{ 數(shù)據(jù)對(duì)象: D={r,i|r,i 為實(shí)數(shù) }
4、
數(shù)據(jù)關(guān)系: R={
5、數(shù) C的兩個(gè)元素按降序排列,則返回 1,否則返回 0
Max(C,&e)
操作結(jié)果:用 e 返回復(fù)數(shù) C的兩個(gè)元素中值較大的一個(gè)
Min(C,&e)
操作結(jié)果:用 e 返回復(fù)數(shù) C的兩個(gè)元素中值較小的一個(gè)
}ADT Complex
ADT RationalNumber{
數(shù)據(jù)對(duì)象: D={s,m|s,m 為自然數(shù),且 m不為 0}
數(shù)據(jù)關(guān)系: R={}
基本操作:
InitRationalNumber(&R,s,m)
操作結(jié)果:構(gòu)造一個(gè)有理數(shù) R,其分子和分母分別為 s 和 m
DestroyRatio
6、nalNumber(&R) 操作結(jié)果:銷毀有理數(shù) R Get(R,k,&e) 操作結(jié)果:用 e 返回有理數(shù) R 的第 k 元的值 Put(&R,k,e) 操作結(jié)果:改變有理數(shù) R 的第 k 元的值為 e IsAscending(R) 操作結(jié)果:若有理數(shù) R的兩個(gè)元素按升序排列,則返回 1,否則返回 0 IsDescending(R) 操作結(jié)果:若有理數(shù) R的兩個(gè)元素按降序排列,則返回 1,否則返回 0 Max(R,&e) 操作結(jié)果:用 e 返回有理數(shù) R 的兩個(gè)元素中值較大的一個(gè) Min(R,&e) 操作結(jié)果:用 e
7、 返回有理數(shù) R 的兩個(gè)元素中值較小的一個(gè)
}ADT RationalNumber
1.5 試畫出與下列程序段等價(jià)的框圖。
(1) product=1; i=1; while(i<=n){
product *= i; i++;
}
(2) i=0;
do {
i++;
} while((i!=n) && (a[i]!=x));
(3) switch {
case x 8、s(y);
}
1.6 在程序設(shè)計(jì)中,常用下列三種不同的出錯(cuò)處理方式:
(1) 用 exit 語句終止執(zhí)行并報(bào)告錯(cuò)誤;
(2) 以函數(shù)的返回值區(qū)別正確返回或錯(cuò)誤返回;
(3) 設(shè)置一個(gè)整型變量的函數(shù)參數(shù)以區(qū)別正確返回或某種錯(cuò)誤返回。試討論這三種方法各自的優(yōu)缺點(diǎn)。
解: (1)exit 常用于異常錯(cuò)誤處理,它可以強(qiáng)行中斷程序的執(zhí)行,返回操作系統(tǒng)。
(2) 以函數(shù)的返回值判斷正確與否常用于子程序的測(cè)試,便于實(shí)現(xiàn)程序的局部控制。
(3) 用整型函數(shù)進(jìn)行錯(cuò)誤處理的優(yōu)點(diǎn)是可以給出錯(cuò)誤類型,便于迅速確定錯(cuò)誤。
1.7 在程序設(shè)計(jì)中,可采用下列三種 9、方法實(shí)現(xiàn)輸出和輸入:
(1) 通過 scanf 和 printf 語句;
(2) 通過函數(shù)的參數(shù)顯式傳遞;
(3) 通過全局變量隱式傳遞。
試討論這三種方法的優(yōu)缺點(diǎn)。
解:(1) 用 scanf 和 printf 直接進(jìn)行輸入輸出的好處是形象、 直觀,但缺點(diǎn)是需要對(duì)其進(jìn)行格式控制,
較為煩瑣,如果出現(xiàn)錯(cuò)誤,則會(huì)引起整個(gè)系統(tǒng)的崩潰。
(2) 通過函數(shù)的參數(shù)傳遞進(jìn)行輸入輸出,便于實(shí)現(xiàn)信息的隱蔽,減少出錯(cuò)的可能。
(3) 通過全局變量的隱式傳遞進(jìn)行輸入輸出最為方便, 只需修改變量的值即可, 但過多的全局變量使程序的維護(hù)較為困難。
1.8 設(shè) 10、n 為正整數(shù)。試確定下列各程序段中前置以記號(hào) @的語句的頻度:
(1) i=1; k=0; while(i<=n-1){
@ k += 10*i; i++;
}
(2) i=1; k=0; do {
@ k += 10*i; i++;
} while(i<=n-1);
(3) i=1; k=0; while (i<=n-1) { i++;
@ k += 10*i;
}
(4) k=0;
for(i=1; i<=n; i++) {
for(j=i; j<=n; j++)
@ k++;
}
(5) for(i=1; i< 11、=n; i++) {
for(j=1; j<=i; j++) {
for(k=1; k<=j; k++)
@ x += delta;
}
(6) i=1; j=0; while(i+j<=n) {
@ if(i>j) j++; else i++;
}
(7) x=n; y=0; // n 是不小于 1 的常數(shù)
while(x>=(y+1)*(y+1)) {
@ y++;
}
(8) x=91; y=100; while(y>0) {
@ if(x>100) { x -= 10; y--; } else x 12、++;
}
解: (1) n-1
(2) n-1
(3) n-1
(4) n+(n-1)+(n-2)+...+1=
n(n
1)
2
(5) 1+(1+2)+(1+2+3)+...+(1+2+3+...+n)=
n i (i
1)
2
i
1
=
1 n
i (i
1)
1 n
(i 2
i )
1 n
i 2
1 13、 n
i
2 i 1
2 i 1
2 i 1
2 i 1
1
1
1
(
1)(2
3)
n(n
1)( 2n
1)
n(n
1)
=
12
4
12
(6) n
(7) n 向下取整
(8) 1100
1.9
假設(shè) n 為 2 的乘冪, 并且 n>2,試求下列算法的時(shí)間復(fù)雜度及變量
int Time(int n) {
count = 14、0; x=2;
while(x 15、
運(yùn)算的時(shí)間為
10 7
秒(100 多天),又每秒可執(zhí)行基本操作 (根據(jù)這些操作來估算算法時(shí)間復(fù)雜度)
105
次。
試問在此條件下,
這兩個(gè)算法可解問題的規(guī)模
(即
n 值的范圍) 各為多少?哪個(gè)算法更適宜?請(qǐng)說明理由。
解: 2 n
1012
n=40
n10
1012
n=16
則對(duì)于同樣的循環(huán)次數(shù) n,在這個(gè)規(guī)模下,第二種算法所花費(fèi)的代價(jià)要大得多。故在這個(gè)規(guī)模下,第
16、
一種算法更適宜。
1.12 設(shè)有以下三個(gè)函數(shù):
f n
21 4
n
2
1000 ,
g n 15n
4
500n
3
,
h n 500n
3.5
nlog n
n
請(qǐng)判斷以下斷言正確與否:
(1) f(n) 是 O(g(n))
(2) h(n) 是 O(f(n))
(3) g(n) 是 O(h(n))
(4) h(n) 是 O(n3.5 )
(5) h(n) 是 O(nlogn)
解: (1)
對(duì) (2) 錯(cuò) (3) 錯(cuò) (4)
17、對(duì) (5) 錯(cuò)
1.13
試設(shè)定若干 n 值,比較兩函數(shù)
n 2
和 50n log 2 n的增長(zhǎng)趨勢(shì),并確定
n 在什么范圍內(nèi),函數(shù)
n 2
的值
大于 50n log 2 n 的值。
解: n 2
的增長(zhǎng)趨勢(shì)快。但在
n 較小的時(shí)候,
50n log 2 n 的值較大。
當(dāng) n>438 時(shí), n 2
50n log 2 n
1.14
判斷下列各對(duì)函數(shù) f n 和 g n
,當(dāng) n
時(shí),哪個(gè)函數(shù)增長(zhǎng)更快?
(1)
f
n
10n 2
ln 18、n!
10n3
, g n
2n4
n 7
(2)
f
n
ln n!
5 2
, g n
13n2.5
(3)
f
n
n2.1
n 4
1 , g n
ln n! 2
n
(4)
f
n
2 n3
2n 2
, g n
n n 2
n5
解: (1)g(n)
快 (2)g(n)
快 (3)f(n)
快 (4) f(n)
快
1.15 試用數(shù)學(xué)歸納法證明:
n
i 2
1
2n
1 / 6
n
0
(1)
n n
i 1
19、
n
x i
x n
1
1 / x
1
x
1, n 0
(2)
i
0
n
2i 1
2n
1
n
1
(3)
i 1
n
2i
1
n 2
n
1
(4)
i 1
1.16 寫一算法,自大至小依次 出 序 入的三個(gè)整數(shù)
X, Y 和 Z 的
解:
int max3(int x,int y,int z)
{
if(x>y)
20、
if(x>z) return x;
else return z;
else
if(y>z) return y;
else return z;
}
1.17 已知 k 斐波那契序列的定
f 0
0 ,
f1
0 , ?,
f k
2
0 ,
fk 1
1;
f n
f n 1
f n 2
fn k , n
k ,k
1,
寫求
k
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高考政治一輪復(fù)習(xí):統(tǒng)編版選擇性必修1-3【共3冊(cè)重點(diǎn)知識(shí)點(diǎn)匯總】
- 2025年高考政治一輪復(fù)習(xí):七冊(cè)教材重點(diǎn)考點(diǎn)匯總
- 2025年高考生物一輪復(fù)習(xí):高中生物必修+選必修5冊(cè)教材重點(diǎn)知識(shí)點(diǎn)匯總
- 2025政府工作報(bào)告要點(diǎn)速覽發(fā)展總體要求和政策取向
- 《哪吒2》與DEEPSEEK年輕力量的崛起助力中國(guó)突破重圍
- 建設(shè)金融強(qiáng)國(guó)做好金融五篇大文章的指導(dǎo)意見
- 落實(shí)高質(zhì)量發(fā)展要求如期完成既定目標(biāo)任務(wù)更新理念科學(xué)統(tǒng)籌切實(shí)增強(qiáng)規(guī)劃執(zhí)行的系統(tǒng)性整體性協(xié)同性
- 如何成為一名暖護(hù)暖護(hù)的概念與職責(zé)
- 藥品儲(chǔ)存與養(yǎng)護(hù)醫(yī)療護(hù)理藥品儲(chǔ)存藥品養(yǎng)護(hù)藥品常識(shí)
- 手術(shù)室職業(yè)暴露與防護(hù)診療護(hù)理等過程中被患者血液體液等污染自身皮膚或黏膜導(dǎo)致的感染
- XX企業(yè)中層管理者領(lǐng)導(dǎo)力提升培訓(xùn)課程
- 醫(yī)院新員工入職培訓(xùn)醫(yī)院新員工必備主要職業(yè)意識(shí)醫(yī)院新員工必備工作觀
- 人工智能技術(shù)介紹人工智能DeepSeek人工智能的未來展望與發(fā)展
- 養(yǎng)娃要有松弛感家庭教育讓孩子在具有松弛感的家庭里慢慢成長(zhǎng)
- 醫(yī)院新員工入職培訓(xùn)醫(yī)院新員工必備主要職業(yè)意識(shí)
相關(guān)資源
更多