下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1章緒論
二、難點(diǎn)與重點(diǎn)
1、基本概念:理解什么是數(shù)據(jù)、數(shù)據(jù)對象、數(shù)據(jù)元素、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)的邏輯結(jié)構(gòu)與
物理結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)的抽象層次。
3、算法與算法分析:理解算法的定義、算法的特性、算法的時間代價、算法的空間代
價。
>算法與程序的不同之處需要從算法的特性來解釋
>算法的正確性是最主要的要求
>算法的可讀性是必須考慮的
>程序的程序步數(shù)的計算與算法的事前估計
>程序的時間代價是指算法的漸進(jìn)時間復(fù)雜性度量
三、習(xí)題的解析
1-2什么是數(shù)據(jù)結(jié)構(gòu)?有關(guān)數(shù)據(jù)結(jié)構(gòu)的討論涉及哪三個方面?
【解答】
數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)以及相互之間的關(guān)系。記為:數(shù)據(jù)結(jié)構(gòu)={D,R}。其中,D是某一
數(shù)據(jù)對象,R是該對象中所有數(shù)據(jù)成員之間的關(guān)系的有限集合。
有關(guān)數(shù)據(jù)結(jié)構(gòu)的討論一般涉及以下三方面的內(nèi)容:
①數(shù)據(jù)成員以及它們相互之間的邏輯關(guān)系,也稱為數(shù)據(jù)的邏輯結(jié)構(gòu),簡稱為數(shù)據(jù)結(jié)構(gòu);
②數(shù)據(jù)成員極其關(guān)系在計算機(jī)存儲器內(nèi)的存儲表示,也稱為數(shù)據(jù)的物理結(jié)構(gòu),簡稱為
存儲結(jié)構(gòu);
③施加于該數(shù)據(jù)結(jié)構(gòu)上的操作。
數(shù)據(jù)的邏輯結(jié)構(gòu)是從邏輯關(guān)系上描述數(shù)據(jù),它與數(shù)據(jù)的存儲不是一碼事,是與計算機(jī)存
儲無關(guān)的。因此,數(shù)據(jù)的邏輯結(jié)構(gòu)可以看作是從具體問題中抽象出來的數(shù)據(jù)模型,是數(shù)據(jù)的
應(yīng)用視圖。數(shù)據(jù)的存儲結(jié)構(gòu)是邏輯數(shù)據(jù)結(jié)構(gòu)在計算機(jī)存儲器中的實(shí)現(xiàn)(亦稱為映像),它是
依賴于計算機(jī)的,是數(shù)據(jù)的物理視圖。數(shù)據(jù)的操作是定義于數(shù)據(jù)邏輯結(jié)構(gòu)上的一組運(yùn)算,每
種數(shù)據(jù)結(jié)構(gòu)都有一個運(yùn)算的集合。例如搜索、插入、刪除、更新、排序等。
1-3數(shù)據(jù)的邏輯結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)兩大類。線性結(jié)構(gòu)包括數(shù)組、鏈表、棧、
隊列、優(yōu)先級隊列等;非線性結(jié)構(gòu)包括樹、圖等、這兩類結(jié)構(gòu)各自的特點(diǎn)是什么?
【解答】
線性結(jié)構(gòu)的特點(diǎn)是:在結(jié)構(gòu)中所有數(shù)據(jù)成員都處于一個序列中,有且僅有一個開始成員
和一個終端成員,并且所有數(shù)據(jù)成員都最多有一個直接前驅(qū)和一個直接后繼。例如,一維數(shù)
組、線性表等就是典型的線性結(jié)構(gòu)
非線性結(jié)構(gòu)的特點(diǎn)是:一個數(shù)據(jù)成員可能有零個、一個或多個直接前驅(qū)和直接后繼。例
如,樹、圖或網(wǎng)絡(luò)等都是典型的非線性結(jié)構(gòu)。
1-6什么是算法?算法的5個特性是什么?試根據(jù)這些特性解釋算法與程序的區(qū)別。
【解答】
通常,定義算法為“為解決某一特定任務(wù)而規(guī)定的一個指令序列?!币粋€算法應(yīng)當(dāng)具有
以下特性:
①有輸入。一個算法必須有0個或多個輸入。它們是算法開始運(yùn)算前給予算法的量。
這些輸入取自于特定的對象的集合。它們可以使用輸入語句由外部提供,也可以使用賦值語
句在算法內(nèi)給定。
②有輸出。一個算法應(yīng)有一個或多個輸出,輸出的量是算法計算的結(jié)果。
③確定性。算法的每一步都應(yīng)確切地、無歧義地定義。對于每一種情況,需要執(zhí)行的
動作都應(yīng)嚴(yán)格地、清晰地規(guī)定。
④有窮性。一個算法無論在什么情況下都應(yīng)在執(zhí)行有窮步后結(jié)束。
⑤有效性。算法中每一條運(yùn)算都必須是足夠基本的。就是說,它們原則上都能精確地
執(zhí)行,甚至人們僅用筆和紙做有限次運(yùn)算就能完成。
算法和程序不同,程序可以不滿足上述的特性(4)。例如,一個操作系統(tǒng)在用戶未使用
前一直處于“等待”的循環(huán)中,直到出現(xiàn)新的用戶事件為止。這樣的系統(tǒng)可以無休止地運(yùn)行,
直到系統(tǒng)停工。
此外,算法是面向功能的,通常用面向過程的方式描述;程序可以用面向?qū)ο蠓绞酱罱?/p>
它的框架。
1-7設(shè)〃為正整數(shù),分析下列各程序段中加下劃線的語句的程序步數(shù)。
(1)for(inti=1;i<=n;i++)(2)x=0;yo;
for(intj=l;j<=n;j++){for(inti=1;i<=n;i++)
c[i]Ul=0.0;for(intj=l;j<=i;j++)
for(intk=1;k<=n;k++)for(intk=1;k<=j;k++)
=c川[i]+aU*]*b[k][il;x=x+y;
【解答】
nnn
⑴=
i=lj=lk=l
i=lj=lk=li=lj=li=l\乙J乙i=l乙i=l
1n(n—+—l)-(--2---n---+----l--)--------1----n---(-n-_|_+-1-)--------n--(--n----+-l)--(--n---+-----2--)------------------
-2622-6
四、其他練習(xí)題
1-10填空題
(A)由某一數(shù)據(jù)對象和該對象中各個數(shù)據(jù)成員間的關(guān)系組成。依據(jù)所有數(shù)據(jù)成員
之間關(guān)系的不同,(A)分為兩大類:(B)和(C)。在(B)中的各個數(shù)
據(jù)成員依次排列在一個線性序列中;(C)的各個數(shù)據(jù)成員不再保持在一個線性序列中,
每個數(shù)據(jù)成員可能與零個或多個其他數(shù)據(jù)成員發(fā)生聯(lián)系。
根據(jù)視點(diǎn)的不同,數(shù)據(jù)結(jié)構(gòu)分為數(shù)據(jù)的(D)和(E)。(D)是面向問題的,
(E)是面向計算機(jī)的。
【解答】
A:數(shù)據(jù)結(jié)構(gòu)B:線性結(jié)構(gòu)C:非線性結(jié)構(gòu)
D:邏輯結(jié)構(gòu)E:存儲結(jié)構(gòu)
1-11判斷下列敘述的對錯。如果正確,在題前打“Y”,否則打“x”。
(1)數(shù)據(jù)元素是數(shù)據(jù)的最小單位。
(2)數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)對象與對象中數(shù)據(jù)元素之間關(guān)系的集合。
(3)數(shù)據(jù)結(jié)構(gòu)是具有結(jié)構(gòu)的數(shù)據(jù)對象。
(4)數(shù)據(jù)的邏輯結(jié)構(gòu)是指各數(shù)據(jù)元素之間的邏輯關(guān)系,是用戶按使用需要建立的。
(5)算法和程序原則上沒有區(qū)別,在討論數(shù)據(jù)結(jié)構(gòu)時二者是通用的。
【解答】
⑴x⑵4(3)x(4)<(5)x
1-12判斷下列敘述的對錯。如果正確,在題前打“4”,否則打“x”。
(1)所謂數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系。
(2)同一數(shù)據(jù)邏輯結(jié)構(gòu)中的所有數(shù)據(jù)元素都具有相同的特性是指數(shù)據(jù)元素所包含的數(shù)
據(jù)項的個數(shù)都相等。
(3)數(shù)據(jù)的邏輯結(jié)構(gòu)與數(shù)據(jù)元素本身的內(nèi)容和形式無關(guān)。
(4)數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種關(guān)系的數(shù)據(jù)元素的全體。
(5)從邏輯關(guān)系上講,數(shù)據(jù)結(jié)構(gòu)主要分為兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。
【解答】
⑴<(2)x⑶Y(4)x(5)<
1-13填空題
算法是一個有窮的指令集,它為解決某一特定任務(wù)規(guī)定了一個運(yùn)算序列。它應(yīng)當(dāng)具有輸
入、輸出、(A)、有窮性和可執(zhí)行性等特性。
算法效率的度量分為(B)和(C(B)主要通過在算法的某些部位插裝
時間函數(shù)來測定算法完成某一規(guī)定功能所需的時間。而(C)不實(shí)際運(yùn)行算法,它是分
析算法中語句的執(zhí)行次數(shù)來度量算法的時間復(fù)雜性。
程序所需的存儲空間包含兩個部分(D)和(E)。(D)空間的大小與輸
入輸出數(shù)據(jù)的個數(shù)多少,數(shù)值大小無關(guān);(E)空間主要包括其大小與問題規(guī)模有關(guān)的
成分變量所占空間,引用變量所占空間,以及遞歸棧所用的空間,還有在算法運(yùn)行過程中動
態(tài)分配和回收的空間。
【解答】
A:確定性B:事后測量C:事前估計
D:固定部分E:可變部分
1-15單選題
(1)一個數(shù)組元素a[i]與的表示等價。
A:*(a+i)B:a+iC:*a+iD:&a+i
(2)對于兩個函數(shù),若函數(shù)名相同,但只是不同則不是重載函數(shù)。
A:參數(shù)類型B:參數(shù)個數(shù)C:函數(shù)類型
(3)若需要利用形參直接訪問實(shí)參,則應(yīng)把形參變量說明為一_______參數(shù)
A:指針B:引用C:值
(4)下面程序段的時間復(fù)雜度為________。
for(inti=0;i<m;i++)
for(intj=0;j<n;j++)
a[i][j]=i*j;
A:O(m2)B:O(n2)C:0(m*n)D:0(m+n)
(5)執(zhí)行下面程序段時,執(zhí)行S語句的次數(shù)為________。
for(inti=1;i<=n;i++)
for(intj=l;j<=i;j++)
s;
A:n2B:n2/2C:n(n+l)D:n(n+l)/2
(6)下面算法的時間復(fù)雜度為________。
intf(unsignedintn){
if(n==0||n==l)return1;
elsereturnn*f(n-1);
}
A:0(1)B:0(n)C:O(n2)D:0(n!)
【解答】
(1)A(2)C(3)B(4)C(5)D(6)B
1-16填空題
(1)數(shù)據(jù)的邏輯結(jié)構(gòu)被分為、、和______四種。
(2)數(shù)據(jù)的存儲結(jié)構(gòu)被分為、、和四種。
(3)在線性結(jié)構(gòu)、樹形結(jié)構(gòu)和圖形結(jié)構(gòu)中,直接前驅(qū)和直接后繼結(jié)點(diǎn)之間分別存在著
、和的聯(lián)系。
(4)一種抽象數(shù)據(jù)類型包括和兩個部分。
(5)當(dāng)一個傳值型形式參數(shù)所占的體積較大時,應(yīng)最好說明為,以節(jié)省參數(shù)值
的傳輸時間和存儲參數(shù)的空間。
(6)當(dāng)需要用一個形式參數(shù)直接改變對應(yīng)實(shí)際參數(shù)的值時,則該形式參數(shù)應(yīng)說明為
(7)在函數(shù)中對引用型形式參數(shù)的修改就是對相應(yīng)________的修改,而對________型形
式參數(shù)的修改只局限在該函數(shù)的內(nèi)部,不會反映到對應(yīng)的實(shí)際參數(shù)上。
(8)當(dāng)需要進(jìn)行標(biāo)準(zhǔn)I/O操作時,則應(yīng)在程序文件中包含頭文件,當(dāng)需要進(jìn)行
文件I/O操作時,則應(yīng)在程序文件中包含頭文件。
(9)一個記錄r理論上占有的存儲空間的大小等于所有域,實(shí)際上占有的存儲
空間的大小即記錄長度為。
(10)一個數(shù)組a所占有的存儲空間的大小即數(shù)組長度為,下標(biāo)為i的元素a[i]
的存儲地址為,或者為。
(11)函數(shù)重載要求、或有所不同。
(12)對于雙目操作符,其重載函數(shù)(非成員函數(shù))帶有個參數(shù),其中至少有一
個為的類型。
(13)若對象ra和rb中至少有一個是屬于用戶定義的類型,則執(zhí)行ra==rb時,需要調(diào)
用______重載函數(shù),該函數(shù)的第一個參數(shù)應(yīng)與的類型相同,第二個參數(shù)應(yīng)與
的類型相同。
(14)從一維數(shù)組a[n]中順序查找出一個最大值元素的時間復(fù)雜度為,輸出一
個二維數(shù)組b[m][n]中所有元素值的時間復(fù)雜度為o
(15)在下面程序段中,s=s+p語句的執(zhí)行次數(shù)為,p*=j語句的執(zhí)行次數(shù)為
,該程序段的時間復(fù)雜度為。
inti=0,s=0;
while(++i<=n){
intp=1;
for(intj=l;j<=i;j++)p*=j;
s=s+p;
)
(16)一個算法的時間復(fù)雜度為(3/+2〃log2〃+4〃-7)/(5〃),其數(shù)量級表示為o
【解答】
(1)集合結(jié)構(gòu)、線性結(jié)構(gòu)、樹形結(jié)構(gòu)、圖形結(jié)構(gòu)(次序無先后)
(2)順序結(jié)構(gòu)、鏈接結(jié)構(gòu)、索引結(jié)構(gòu)、散列結(jié)構(gòu)(次序無先后)
(3)1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健康教育在公共衛(wèi)生領(lǐng)域的重要性
- 2025中國聯(lián)通江蘇省分公司招聘19人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國移動福建公司春季校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國電信河北衡水分公司校園招聘6人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國煙草總公司海南省公司海口雪茄研究所招聘5人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國交建軌道交通事業(yè)部招聘14人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年重慶渝中區(qū)事業(yè)單位歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年山東煙臺市棲霞市事業(yè)單位招聘本科及以上學(xué)歷畢業(yè)生入伍9人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年四川瀘州市龍馬潭區(qū)事業(yè)單位招聘工作人員19人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上海市生物醫(yī)藥科技發(fā)展中心公開招聘5人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年西藏自治區(qū)中考地理真題(原卷版)
- 成人高考JAVA程序設(shè)計(考試復(fù)習(xí)資料)
- MOOC 電路理論-華中科技大學(xué) 中國大學(xué)慕課答案
- 物流園區(qū)運(yùn)營管理承包合同樣本
- 國家職業(yè)技術(shù)技能標(biāo)準(zhǔn) 6-02-06-10 茶葉加工工 2024年版
- 無人駕駛清掃車市場調(diào)查數(shù)據(jù)報告2024年(含現(xiàn)狀分析市場排名數(shù)據(jù)及未來預(yù)測)
- 道岔拆除施工方案
- 多學(xué)科綜合MDT2024年度多學(xué)科綜合MDT工作總結(jié)與計劃
- 北京海淀區(qū)2024屆高三最后一模語文試題含解析
- 2023年計劃訂單專員年度總結(jié)及下一年規(guī)劃
- 裝修工程竣工驗收自評報告
評論
0/150
提交評論