資源描述:
《C語言公共基礎(chǔ)復(fù)習(xí)資料》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、二級(jí)公共基礎(chǔ)知識(shí)總結(jié)請(qǐng)大家認(rèn)真復(fù)習(xí)公共基礎(chǔ),多背誦,多看,多做!“公共基礎(chǔ)補(bǔ)充資料”也非常重要!有公共基礎(chǔ)復(fù)習(xí)方法的介紹第一章數(shù)據(jù)結(jié)構(gòu)與算法1.1算河和因:是指鮮題方案的準(zhǔn)確而完整的描述。算法不等于程序,也不等計(jì)算機(jī)方法,程序的編制不可能優(yōu)于算法的設(shè)計(jì)。算法的基木特征:是一組嚴(yán)謹(jǐn)?shù)囟x運(yùn)算順序的規(guī)則,每一個(gè)規(guī)則都是有效的,是明確的,此順序?qū)⒃谟邢薜拇螖?shù)下終止。特征包括:(1)可行性;(2)確定性,算法中每一步驟都必須有明確定義,不充許有模棱兩可的解釋,不允許有多義性;(3)有窮性,算法必須能在有限的時(shí)間內(nèi)做完,即能在執(zhí)行有限個(gè)步驟后終止,包括合理的執(zhí)行時(shí)間的含義;(4)擁有足夠的情
2、報(bào)。算法的基本耍素:一是對(duì)數(shù)據(jù)對(duì)哀的運(yùn)算和襟作;二是算法的控制結(jié)構(gòu)。指令系統(tǒng):一個(gè)計(jì)算機(jī)系統(tǒng)能執(zhí)行的所有指令的集合?;具\(yùn)算包括:算術(shù)運(yùn)算、邏輯運(yùn)算、關(guān)糸運(yùn)算、教據(jù)傳輸。算出的控制結(jié)構(gòu):
3、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
4、。算法基本設(shè)計(jì)方法:列舉法、歸納法、遞推、遞歸、減斗遞推技術(shù)、冋溯法。算出復(fù)雜度:
5、算出時(shí)問復(fù)雜因和
6、算出空問復(fù)雜度
7、。算法肘問復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量。算出空問復(fù)雜度是指執(zhí)行這個(gè)算去所需要的內(nèi)存空問。1.2數(shù)據(jù)結(jié)構(gòu)的基本基本概念數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合。教據(jù)結(jié)構(gòu)研克的三個(gè)方面:(1)數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即區(qū)據(jù)的邏輯結(jié)珂
8、;(2)在対數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)屮的存儲(chǔ)關(guān)系,即
9、數(shù)據(jù)的存儲(chǔ)結(jié)匈;(3)對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算。數(shù)據(jù)的邏輯結(jié)構(gòu)包含:(1)表示數(shù)據(jù)元素的信息;(2)表示各數(shù)據(jù)元素Z間的前后件關(guān)系。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等。線性結(jié)構(gòu)條件:門丿有且只有一個(gè)根結(jié)點(diǎn);(2丿每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。非線性結(jié)構(gòu):不滿足線性結(jié)構(gòu)條件的數(shù)據(jù)結(jié)構(gòu)。1.3線性表及其順序存儲(chǔ)結(jié)構(gòu)線性表是由一紐教據(jù)元素構(gòu)成,數(shù)據(jù)元素的住置只取決于自己的序號(hào),元素之問的相對(duì)住置是線性的O在復(fù)雜線性表中,山若干項(xiàng)數(shù)據(jù)元索組成的數(shù)據(jù)元索稱為亟,而山多個(gè)記錄構(gòu)成的線性表乂稱為I丈件I。非空線性表的結(jié)
10、構(gòu)特征:(1)且只有一個(gè)根結(jié)點(diǎn)刖,它無前件;(2)有口只有一個(gè)終端結(jié)點(diǎn)an,它無后件;(3)除根結(jié)點(diǎn)與終端結(jié)點(diǎn)外,其他所有結(jié)點(diǎn)有且只有一個(gè)前件,也有且只有一個(gè)后件。結(jié)點(diǎn)個(gè)數(shù)n稱為
11、線性表的長度當(dāng)n=0時(shí),稱為
12、空表
13、。線性表的順序存憐結(jié)構(gòu)具有以下兩個(gè)基本特點(diǎn):門丿線性表中所有元素的所占的存儲(chǔ)空間是連續(xù)的;(2丿線性表中各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。ai的存儲(chǔ)地址為:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)為第一個(gè)元素的地址,k代表每個(gè)元素占的字節(jié)數(shù)。順序表的運(yùn)算:插入、刪除。(詳見14--16頁)1.4棧和隊(duì)列理是限定在一端進(jìn)行插入與刪除的線性
14、表,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。棧按照丸進(jìn)斥酬(FlL0丿對(duì)后進(jìn)先出(LIF0丿紐織數(shù)據(jù),找具有記憶作用。用top表示棧頂位置,用bottom表示棧底。棧的基本運(yùn)算:(1)插入元素稱為入棧運(yùn)算;(2)刪除元素稱為退棧運(yùn)算;(3)讀棧頂元素是將棧頂元素賦給一個(gè)指定的變量,此時(shí)指針無變化。隊(duì)列
15、是指允許衣■一端(隊(duì)尾丿進(jìn)入插入,而亦另一端(隊(duì)頭丿進(jìn)行刪除的線性表。Rear指針指向隊(duì)尾,front指針指向隊(duì)頭。隊(duì)列是!“先進(jìn)行出”I(FIFO丿或]“后進(jìn)后出(LILO丿的線性表。隊(duì)列運(yùn)算包括(1)入隊(duì)運(yùn)算:從隊(duì)尾插入一個(gè)元素;(2)退隊(duì)運(yùn)算:從隊(duì)頭刪除
16、一個(gè)元素。循環(huán)隊(duì)列:s=0表示隊(duì)列空,s=1且frontsrear表示隊(duì)列滿1.5線性鏈表數(shù)據(jù)結(jié)構(gòu)中的毎一個(gè)結(jié)點(diǎn)對(duì)應(yīng)于一個(gè)存儲(chǔ)單元,這種存儲(chǔ)單元稱為存儲(chǔ)結(jié)點(diǎn),簡稱結(jié)點(diǎn)O結(jié)點(diǎn)由兩部分組成:(1)用于存儲(chǔ)數(shù)據(jù)元素值,稱為數(shù)據(jù)城;(2)用于存放指針,稱為指針城,ffl于指向前一個(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)系是rh指針域來確定的。鏈無存緒方式即可用于表示線性結(jié)構(gòu),也可用于表示非線性結(jié)構(gòu)。線性鏈表,HEAD稱為頭指針,HEAD=NULL(或0)稱些,如杲是兩指針:
17、左旅針
18、(
19、Llink)指向前件結(jié)點(diǎn),
20、右指針
21、(Rlink)指向后件結(jié)點(diǎn)。線性鏈表的基木運(yùn)算:杳找、插入、刪除。1.6樹與二叉樹樹是一種簡單的非線性結(jié)構(gòu),所冇元素Z間具冇明顯的層次特性。在樹結(jié)構(gòu)中,每一個(gè)結(jié)點(diǎn)只有一個(gè)前件,稱為父結(jié)點(diǎn),沒有前件的結(jié)點(diǎn)只有一個(gè),稱為樹的才艮結(jié)點(diǎn),簡稱樹的根。每一個(gè)結(jié)點(diǎn)可以有多個(gè)后件,稱為該結(jié)點(diǎn)的土業(yè)。沒有后件的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn)。在樹結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件的個(gè)數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)中最丸的度稱為樹的樹的最大層次稱為樹的滓度。二又樹I的特點(diǎn):