【考點(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í)行過(guò)程中所需的額外空間。
空間復(fù)雜度和時(shí)間復(fù)雜度并不相關(guān)。
【考點(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í)行過(guò)程中所需的額外空間。
空間復(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)的總稱(chēng),如文檔,聲音,視頻等。
數(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),是面向問(wèn)題的,是獨(dú)立于計(jì)算機(jī)的。它包括數(shù)據(jù)對(duì)象和數(shù)據(jù)對(duì)象之間的關(guān)系。
2)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)也稱(chēng)為數(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、常見(jiàn)的存儲(chǔ)結(jié)構(gòu)有:順序,鏈接,索引等。采用不同的存儲(chǔ)結(jié)構(gòu)其數(shù)據(jù)處理的效率是不同的。
【考點(diǎn)5】線(xiàn)性結(jié)構(gòu)和非線(xiàn)性結(jié)構(gòu)
1、線(xiàn)性結(jié)構(gòu)的條件(一個(gè)非空數(shù)據(jù)結(jié)構(gòu)):
(1)有且只有一個(gè)根結(jié)點(diǎn);
(2)每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。
2、非線(xiàn)性結(jié)構(gòu):不滿(mǎn)足線(xiàn)性結(jié)構(gòu)條件的數(shù)據(jù)結(jié)構(gòu)。
棧、隊(duì)列、雙向鏈表是線(xiàn)性結(jié)構(gòu),樹(shù)、二叉樹(shù)為非線(xiàn)性結(jié)構(gòu)。
【考點(diǎn)6】線(xiàn)性表及其順序存儲(chǔ)結(jié)構(gòu)
1、線(xiàn)性表是由一組數(shù)據(jù)元素構(gòu)成,數(shù)據(jù)元素的位置只取決于自己的序號(hào),元素之間的相對(duì)位置是線(xiàn)性的。
2、在復(fù)雜線(xiàn)性表中,由若干項(xiàng)數(shù)據(jù)元素組成的數(shù)據(jù)元素稱(chēng)為記錄;由多個(gè)記錄構(gòu)成的線(xiàn)性表稱(chēng)為文件。
3、非空線(xiàn)性表的結(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稱(chēng)為線(xiàn)性表的長(zhǎng)度,當(dāng)n=0時(shí),稱(chēng)為空表。
4、線(xiàn)性表的順序存儲(chǔ)結(jié)構(gòu)具有以下兩個(gè)基本特點(diǎn):
(1)線(xiàn)性表中所有元素所占的存儲(chǔ)空間是連續(xù)的;
(2)線(xiàn)性表中各數(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】線(xiàn)性鏈表
線(xiàn)性鏈表是線(xiàn)性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)中的每一個(gè)結(jié)點(diǎn)對(duì)應(yīng)于一個(gè)存儲(chǔ)單元,這種存儲(chǔ)單元稱(chēng)為存儲(chǔ)結(jié)點(diǎn),簡(jiǎn)稱(chēng)結(jié)點(diǎn)。結(jié)點(diǎn)由兩部分組成:(1) 用于存儲(chǔ)數(shù)據(jù)元素值,稱(chēng)為數(shù)據(jù)域;(2) 用于存放指針,稱(chēng)為指針域,用于指向前一個(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ǔ)方式既可用于表示線(xiàn)性結(jié)構(gòu),也可用于表示非線(xiàn)性結(jié)構(gòu)。