公共基礎(chǔ)知識(shí)

第一章 數(shù)據(jù)結(jié)構(gòu)與算法

【考點(diǎn)1】算法的基本概念

1、算法:是指一組有窮的指令集,是解題方案的準(zhǔn)確而完整的描述。算法不等于程序,也不等于計(jì)算方法。

2、算法的基本特征:

1)確定性,算法中每一步驟都必須有明確定義,不允許有多義性;

2)有窮性,算法必須能在有限的時(shí)間內(nèi)做完,即能在執(zhí)行有限個(gè)步驟后終止;

3)可行性,算法原則上能夠精確地執(zhí)行;

4)擁有足夠的情報(bào)。

3、算法的組成要素:一個(gè)算法由數(shù)據(jù)對(duì)象的運(yùn)算和操作以及其控制結(jié)構(gòu)這兩部分組成。

4、算法的基本運(yùn)算和操作:算術(shù)運(yùn)算,邏輯運(yùn)算,關(guān)系運(yùn)算,數(shù)據(jù)傳輸。

5、算法的基本控制結(jié)構(gòu):順序,選擇,循環(huán)。

6、算法基本設(shè)計(jì)方法:列舉法、歸納法、遞推、遞歸、減半遞推技術(shù)。

【考點(diǎn)2】算法的復(fù)雜度

1、算法效率的度量——算法的復(fù)雜度:時(shí)間復(fù)雜度和空間復(fù)雜度。

1)算法時(shí)間復(fù)雜度:指執(zhí)行算法所需要的計(jì)算工作量。通常,一個(gè)算法所用的時(shí)間包括編譯時(shí)間和運(yùn)行時(shí)間。

2)算法空間復(fù)雜度:指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。包括算法程序所占的空間,輸入的初始數(shù)據(jù)所占的空間,算法執(zhí)行過程中所需的額外空間。

空間復(fù)雜度和時(shí)間復(fù)雜度并不相關(guān)。

【考點(diǎn)3】數(shù)據(jù)結(jié)構(gòu)的基本概念

數(shù)據(jù):數(shù)據(jù)是客觀事物的符號(hào)表示,是能輸入到計(jì)算機(jī)中并被計(jì)算程序識(shí)別和處理的符號(hào)的總稱,如文檔,聲音,視頻等。

數(shù)據(jù)元素:數(shù)據(jù)元素是數(shù)據(jù)的基本單位。

數(shù)據(jù)對(duì)象:數(shù)據(jù)對(duì)象是性質(zhì)相同的數(shù)據(jù)元素的集合。

數(shù)據(jù)結(jié)構(gòu):是指由某一數(shù)據(jù)對(duì)象中所有數(shù)據(jù)成員之間的關(guān)系組成的集合。

【考點(diǎn)4】邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)

1、數(shù)據(jù)結(jié)構(gòu)可分為數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)。

1)數(shù)據(jù)的邏輯結(jié)構(gòu)是對(duì)數(shù)據(jù)元素之間的邏輯關(guān)系的描述,與數(shù)據(jù)的存儲(chǔ)無(wú)關(guān),是面向問題的,是獨(dú)立于計(jì)算機(jī)的。它包括數(shù)據(jù)對(duì)象和數(shù)據(jù)對(duì)象之間的關(guān)系。

2)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)也稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)在計(jì)算機(jī)中的存放的方式,是面向計(jì)算機(jī)的,它包括數(shù)據(jù)元素的存儲(chǔ)方式和關(guān)系的存儲(chǔ)方式。

2、存儲(chǔ)結(jié)構(gòu)和邏輯結(jié)構(gòu)的關(guān)系:一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以表示成多種存儲(chǔ)結(jié)構(gòu)即數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)不一定一一對(duì)應(yīng)。

3、常見的存儲(chǔ)結(jié)構(gòu)有:順序,鏈接,索引等。采用不同的存儲(chǔ)結(jié)構(gòu)其數(shù)據(jù)處理的效率是不同的。

【考點(diǎn)5】線性結(jié)構(gòu)和非線性結(jié)構(gòu)

1、線性結(jié)構(gòu)的條件(一個(gè)非空數(shù)據(jù)結(jié)構(gòu)):(1)有且只有一個(gè)根結(jié)點(diǎn);(2)每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。

2、非線性結(jié)構(gòu):不滿足線性結(jié)構(gòu)條件的數(shù)據(jù)結(jié)構(gòu)。

棧、隊(duì)列、雙向鏈表是線性結(jié)構(gòu),樹、二叉樹為非線性結(jié)構(gòu)。

【考點(diǎn)6】線性表及其順序存儲(chǔ)結(jié)構(gòu)

1、線性表是由一組數(shù)據(jù)元素構(gòu)成,數(shù)據(jù)元素的位置只取決于自己的序號(hào),元素之間的相對(duì)位置是線性的。

2、在復(fù)雜線性表中,由若干項(xiàng)數(shù)據(jù)元素組成的數(shù)據(jù)元素稱為記錄;由多個(gè)記錄構(gòu)成的線性表稱為文件。

3、非空線性表的結(jié)構(gòu)特征:

(1)有且只有一個(gè)根結(jié)點(diǎn)a1,它無(wú)前件;

(2)有且只有一個(gè)終端結(jié)點(diǎn)an,它無(wú)后件;

(3)除根結(jié)點(diǎn)與終端結(jié)點(diǎn)外,其他所有結(jié)點(diǎn)有且只有一個(gè)前件,也有且只有一個(gè)后件。

結(jié)點(diǎn)個(gè)數(shù)n稱為線性表的長(zhǎng)度,當(dāng)n=0時(shí),稱為空表。

4、線性表的順序存儲(chǔ)結(jié)構(gòu)具有以下兩個(gè)基本特點(diǎn):

(1)線性表中所有元素所占的存儲(chǔ)空間是連續(xù)的;

(2)線性表中各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。

元素ai的存儲(chǔ)地址為:ADR(ai)=ADR(a1)+(i-1)*k,ADR(a1)為第一個(gè)元素的地址,k代表每個(gè)元素占的字節(jié)數(shù)。

5、順序表的運(yùn)算:查找、插入、刪除。

【考點(diǎn)7】線性鏈表

線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)中的每一個(gè)結(jié)點(diǎn)對(duì)應(yīng)于一個(gè)存儲(chǔ)單元,這種存儲(chǔ)單元稱為存儲(chǔ)結(jié)點(diǎn),簡(jiǎn)稱結(jié)點(diǎn)。結(jié)點(diǎn)由兩部分組成:(1) 用于存儲(chǔ)數(shù)據(jù)元素值,稱為數(shù)據(jù)域;(2) 用于存放指針,稱為指針域,用于指向前一個(gè)或后一個(gè)結(jié)點(diǎn)。

在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來(lái)確定的。

鏈?zhǔn)酱鎯?chǔ)方式既可用于表示線性結(jié)構(gòu),也可用于表示非線性結(jié)構(gòu)。

線性單鏈表中,HEAD稱為頭指針,HEAD=NULL(或0)稱為空表。

雙向鏈表有兩個(gè)指針:左指針(Llink)指向前件結(jié)點(diǎn),右指針(Rlink)指向后件結(jié)點(diǎn)。

循環(huán)鏈表:循環(huán)鏈表與單鏈表的不同的是它的最后一個(gè)結(jié)點(diǎn)的指針域存放的事指向第一個(gè)結(jié)點(diǎn)的指針而單鏈表存放的是空指針。

線性鏈表的基本運(yùn)算:查找、插入、刪除。

【考點(diǎn)8】棧

1、棧的基本概念

棧是一種特殊的線性表,只允許在表的一端進(jìn)行插入和刪除的線性表;插入,刪除的一端為棧頂,另一端為棧底;當(dāng)表中沒有元素時(shí)為空棧。

棧是一種后進(jìn)先出(或先進(jìn)后出Last In First Out)的線性表。棧具有記憶功能。棧的實(shí)例:火車調(diào)度,子彈夾。

2、棧的存儲(chǔ)結(jié)構(gòu)

順序存儲(chǔ)結(jié)構(gòu):用一組地址連續(xù)的存儲(chǔ)單元即一維數(shù)組來(lái)存儲(chǔ);

鏈?zhǔn)酱鎯?chǔ):用線性鏈表來(lái)存儲(chǔ);

3、棧的基本運(yùn)算

(1) 入棧運(yùn)算,在棧頂位置插入元素;

(2) 退棧運(yùn)算,刪除元素(取出棧頂元素并賦給一個(gè)指定的變量);

(3) 讀棧頂元素,將棧頂元素賦給一個(gè)指定的變量,此時(shí)指針無(wú)變化。

【考點(diǎn)9】隊(duì)列

1.隊(duì)列的基本概念

隊(duì)列是一種特殊的線性表,只允許在表的一端插入,在另一端刪除,允許插入的一端是隊(duì)尾(rear),允許刪除的一端為隊(duì)頭(front);當(dāng)表中沒有元素是空隊(duì)列;隊(duì)列是一種先進(jìn)先出的線性表。(FIFO)

2、隊(duì)列的存儲(chǔ)結(jié)構(gòu)

順序存儲(chǔ):一維數(shù)組。

鏈?zhǔn)酱鎯?chǔ):線性鏈表。

3、隊(duì)列的運(yùn)算:

(1) 入隊(duì)運(yùn)算:從隊(duì)尾插入一個(gè)元素; (2) 退隊(duì)運(yùn)算:從隊(duì)頭刪除一個(gè)元素。

4、隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)一般采用循環(huán)隊(duì)列的形式。循環(huán)隊(duì)列s=0表示隊(duì)列為空;s=1且front=rear表示隊(duì)滿。

5、計(jì)算循環(huán)隊(duì)列的元素個(gè)數(shù):“尾指針減頭指針”,若為負(fù)數(shù),再加其容量即可。

【考點(diǎn)10】樹的基本概念

樹是一種非線性結(jié)構(gòu),是n個(gè)結(jié)點(diǎn)的有限集。當(dāng)n=0 時(shí)為空樹,n>0時(shí)為非空樹。結(jié)點(diǎn)的度:結(jié)點(diǎn)所擁有的子樹的個(gè)數(shù)。

葉子結(jié)點(diǎn):度為0的結(jié)點(diǎn)。

分支結(jié)點(diǎn):除葉子結(jié)點(diǎn)以外的結(jié)點(diǎn)。

結(jié)點(diǎn)的層次:根結(jié)點(diǎn)在第一層,同一層上左右結(jié)點(diǎn)的子結(jié)點(diǎn)在下一層。

樹的深度:所處層次最大的那個(gè)結(jié)點(diǎn)的層次。

樹的度:樹中所有結(jié)點(diǎn)的度的最大值。

【考點(diǎn)11】二叉樹及其基本性質(zhì)

1、二叉樹的概念

二叉樹是一種特殊的樹形結(jié)構(gòu),每個(gè)結(jié)點(diǎn)最多只有兩棵子樹,且有左右之分不能互換,因此,二叉樹有五種不同的形態(tài)。

2、二叉樹的性質(zhì)

性質(zhì)1 在二叉樹的第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn)。

性質(zhì)2 深度為m的二叉樹最多有2m-1個(gè)結(jié)點(diǎn)。

性質(zhì)3 在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。

性質(zhì)4 具有n個(gè)結(jié)點(diǎn)的二叉樹,其深度不小于[log2n]+1,其中[log2n]表示為log2n的整數(shù)部分。

【考點(diǎn)12】滿二叉樹與完全二叉樹

滿二叉樹:除最后一層外,每一層上的所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)。在滿二叉樹中,每一層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值,即在滿二叉樹的第k層上有2k-1個(gè)結(jié)點(diǎn),且深度為m的滿二叉樹有2m-1個(gè)結(jié)點(diǎn)。

完全二叉樹是指這樣的二叉樹:除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值;在最后一層上只缺少右邊的若干結(jié)點(diǎn)。

滿二叉樹是完全二叉樹,而完全二叉樹一般不是滿二叉樹。

【考點(diǎn)13】完全二叉樹的性質(zhì)

性質(zhì)1 具有n個(gè)結(jié)點(diǎn)的完全二叉樹的深度為[log2n]+1。

性質(zhì)2 完全二叉樹中度為1的結(jié)點(diǎn)數(shù)為0或1。

【考點(diǎn)14】二叉樹的遍歷

1、前序遍歷:先訪問根結(jié)點(diǎn)、然后遍歷左子樹,最后遍歷右子樹;并且,在遍歷左、右子樹時(shí),仍然先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。

前序遍歷圖5可得:ABCDFHEG。

2、中序遍歷:先遍歷左子樹、然后訪問根結(jié)點(diǎn),最后遍歷右子樹;并且,在遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。

中序遍歷圖5可得:BAFHDCGE。

3、后序遍歷:先遍歷左子樹、然后遍歷右子樹,最后訪問根結(jié)點(diǎn);并且,在遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn)。

后序遍歷圖5可得:BHFDGECA。

1. 算法的有窮性是指算法必須能執(zhí)行有限個(gè)步驟之后終止.

2. 算法的時(shí)間復(fù)雜度是指算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)

3. 隊(duì)列、棧、線性表屬于線性數(shù)據(jù)結(jié)構(gòu),二叉樹不屬于

4. 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指: 數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示

5. 一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率

6. 線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

7. 棧是先進(jìn)后出、后進(jìn)先出的線性鏈表,具有記憶作用,對(duì)棧的插入與刪除操作中,不需要改變棧底指針,是特殊的線性表,只能在一端插入或者刪除元素

8. 線性鏈表存儲(chǔ)空間不一定連續(xù),且各元素的存儲(chǔ)順序是任意的

9. 在深度為7的滿二叉樹中,葉子節(jié)點(diǎn)的個(gè)數(shù)為: 64

10. 能用二分法查找的是順序存儲(chǔ)的有序線性表

11. 對(duì)長(zhǎng)度為N 的線性表進(jìn)行順序查找,在壞的情況下需要比較的次數(shù)為:N

12. 對(duì)于長(zhǎng)度為N 的線性表,在壞的情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是: 快速排序?yàn)镹(N-1)/2

13. 算法的復(fù)雜度包括時(shí)間復(fù)雜度和空間復(fù)雜度

14. 算法在執(zhí)行過程中所需要的存儲(chǔ)空間稱為算法的空間復(fù)雜度

15. 問題處理方案的正確而完整的描述稱為算法

16. 數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)控件中的存放方式稱為數(shù)據(jù)的 存儲(chǔ)結(jié)構(gòu)或者物理結(jié)構(gòu)或者物理存儲(chǔ)結(jié)構(gòu)

17. 按照邏輯結(jié)構(gòu)分類,數(shù)據(jù)結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),二叉樹屬于 非線性結(jié)構(gòu)

18. 數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于存儲(chǔ)結(jié)構(gòu)

19. 某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中共有 19個(gè)葉子結(jié)點(diǎn)

20. 一顆二叉樹第六層(根節(jié)點(diǎn)為層)的結(jié)點(diǎn)數(shù)多為32個(gè)

1. 在結(jié)構(gòu)化方法中,軟件功能分解屬于 總體設(shè)計(jì)階段

2. 軟件工程的三要素:工具 過程 方法

3. 若按功能劃分,軟件測(cè)試的方法通常分為 白盒測(cè)試和黑盒測(cè)試

4. 在進(jìn)行模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊(樁模塊),其中 驅(qū)動(dòng)模塊的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊的測(cè)試結(jié)果

5. 程序測(cè)試分為靜態(tài)分析和報(bào)考測(cè)試,其中靜態(tài)分析(靜態(tài)測(cè)試)是指不執(zhí)行程序,而只是對(duì)程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤

6. 診斷和改正程序中錯(cuò)誤的工作通常稱為調(diào)試

7. 軟件是程序、數(shù)據(jù)和文檔的集合

8. 軟件工程研究的內(nèi)容主要是 軟件開發(fā)技術(shù)和軟件工程管理

9. 數(shù)據(jù)庫(kù)系統(tǒng)的核心是 數(shù)據(jù)庫(kù)管理系統(tǒng)

10. 數(shù)據(jù)庫(kù)系統(tǒng)的根本目標(biāo)是解決數(shù)據(jù)共享問題

11. 能給出數(shù)據(jù)庫(kù)物理存儲(chǔ)與物理存取方法的是內(nèi)模式

12. 在數(shù)據(jù)庫(kù)的兩極映射中,從概念模式到內(nèi)模式的映射一般由數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn)

13. 支持?jǐn)?shù)據(jù)庫(kù)各種操作的軟件系統(tǒng)叫作 數(shù)據(jù)庫(kù)管理系統(tǒng)

14. 數(shù)據(jù)庫(kù)(DB )\數(shù)據(jù)庫(kù)系統(tǒng)(DBS )、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS )之間的關(guān)系是:DBS 包含DB 和DBMS

15. 在關(guān)系數(shù)據(jù)庫(kù)模型中,通常可以把 字段 稱為屬性,其值稱為屬性值

16. 用樹形結(jié)構(gòu)來(lái)表示實(shí)體之間聯(lián)系的模型稱為 層次模型

17. 在E-R 圖中,用來(lái)表示實(shí)體的圖形是 矩形

18. 商品與顧客兩個(gè)實(shí)體之間的聯(lián)系一般是 多對(duì)多

19. 數(shù)據(jù)庫(kù)系統(tǒng)在其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式,其中 內(nèi)模式 給出了數(shù)據(jù)庫(kù)中物理存儲(chǔ)結(jié)構(gòu)與物理存取方法

20. 數(shù)據(jù)管理技術(shù)發(fā)展過程經(jīng)過人工管理、文件系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)三個(gè)階段,其中數(shù)據(jù)獨(dú)立性的階段是 數(shù)據(jù)庫(kù)系統(tǒng)

21. 數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性和物理獨(dú)立性,當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為 物理獨(dú)立性

22. 如果一個(gè)工人可以管理多臺(tái)設(shè)備,而一個(gè)設(shè)備只被一個(gè)工人管理,則實(shí)體工人與實(shí)體設(shè)備之間存在 一對(duì)多的關(guān)系

23. 關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件,包括實(shí)體完整性、參照完整性和自定義完整性

24. 在關(guān)系數(shù)據(jù)庫(kù)中,把數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為 關(guān)系或關(guān)系表

25. 關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括 選擇、連接和投影

郵箱
huangbenjincv@163.com

金坛市| 望谟县| 靖州| 泰安市| 如皋市| 垦利县| 浙江省| 鄂托克旗| 嘉黎县| 左权县| 宁海县| 许昌市| 台中市| 浦江县| 东乡县| 梁平县| 巴南区| 镇安县| 龙井市| 临澧县| 电白县| 衡南县| 兰考县| 济南市| 永新县| 万载县| 和硕县| 都兰县| 亚东县| 祁连县| 应用必备| 义马市| 金湖县| 常德市| 慈利县| 昭通市| 偏关县| 新乡市| 武川县| 甘谷县| 洛隆县|