我也考過(guò)計(jì)算機(jī)二級(jí)C,當(dāng)時(shí)我已經(jīng)學(xué)習(xí)過(guò)C語(yǔ)言了,但是對(duì)于計(jì)算機(jī)二級(jí)的公共基礎(chǔ)知識(shí)中涉及的數(shù)據(jù)結(jié)構(gòu)(考過(guò)并且學(xué)過(guò)之后還是覺(jué)得數(shù)據(jù)結(jié)構(gòu)占很大部分)網(wǎng)絡(luò)基礎(chǔ)之類的東西一點(diǎn)意識(shí)都沒(méi)有,但是我不建議你再專門學(xué)習(xí)這些課,因?yàn)楣不A(chǔ)知識(shí)考的很簡(jiǎn)單,只是表面的一些東西,深究起來(lái)倒會(huì)有很多不明白。樓上兩位朋友都說(shuō)的很對(duì),這個(gè)東西希望你去買一本書(shū),最好有上機(jī)和筆試兩部分,并且有真題。譚浩強(qiáng)那本書(shū)很好,如果你認(rèn)真看C語(yǔ)言是一點(diǎn)問(wèn)題都沒(méi)有的,之所以還需要真題,是因?yàn)樯蠙C(jī)題就是那幾種類別,個(gè)人感覺(jué)不會(huì)很難;筆試的內(nèi)容不要死記硬背,你在選擇真題時(shí)買那種有詳細(xì)簡(jiǎn)答的,就是給出答案后會(huì)對(duì)這道題涉及的知識(shí)點(diǎn)有一個(gè)梳理的那種。比如說(shuō)有道題是二叉樹(shù)的前序遍歷,然后它會(huì)在后面告訴你什么是二叉樹(shù),二叉樹(shù)有三種遍歷方式:前序,中序和后序,并且結(jié)合題目具體給出各個(gè)結(jié)點(diǎn)的排序。這種方式很容易接受,況且咱們主要目的是會(huì)運(yùn)用這些知識(shí)答題,所以結(jié)合題目來(lái)復(fù)習(xí)是最好的。至于具體買哪本書(shū),樓主自己挑挑,其實(shí)市面上賣的書(shū)都差不多。
以上是我個(gè)人的一點(diǎn)經(jīng)驗(yàn),希望對(duì)你的復(fù)習(xí)會(huì)有所幫助。祝你新年快樂(lè)并且能夠在考試中取得好成績(jī)。
事業(yè)單位考試?yán)锩媸浅龅念}目是兩個(gè)部分:一個(gè)部分是公共基礎(chǔ)知識(shí),一部分是對(duì)報(bào)考專業(yè)的技能知識(shí)的理論方面。公共基礎(chǔ)知識(shí)趙公務(wù)員考試書(shū)復(fù)習(xí),專業(yè)技能知識(shí)部分看計(jì)算機(jī)方面的書(shū)。
事業(yè)單位考試又稱事業(yè)編制考試,這項(xiàng)工作由各用人單位的人事部門委托省級(jí)和地級(jí)市的人事廳局所屬人事考試中心(事業(yè)單位,考試中心命題和組織報(bào)名、考試并交用人單位成績(jī)名單,部分單位自行命題組織實(shí)施)。目前尚無(wú)全國(guó)和全省、市統(tǒng)一招考,最多縣級(jí)各個(gè)單位統(tǒng)一招考 ,一般規(guī)模大的采取網(wǎng)絡(luò)報(bào)名,人數(shù)少則現(xiàn)場(chǎng)報(bào)名。
1、算法問(wèn)題處理方案的正確而完整的描述稱為【算法】。
算法分析的目的是,分析算法的效率以求改進(jìn)。算法的基本特征是【可行性】、【確定性】、【有窮性】和擁有足夠情報(bào)。
算法的有窮性是指:算法程序的運(yùn)行時(shí)間是有限的。算法的復(fù)雜度是衡量算法好壞的度量,分為【時(shí)間復(fù)雜度】和【空間復(fù)雜度】。
時(shí)間復(fù)雜度是指執(zhí)行算法所需要的【計(jì)算工作量】;算法的空間復(fù)雜度是指算法執(zhí)行過(guò)程中所需的【存儲(chǔ)空間】。算法時(shí)間復(fù)雜度或空間復(fù)雜度中的一項(xiàng)的值,沒(méi)有辦法推出另一項(xiàng)的值。
2、數(shù)據(jù)結(jié)構(gòu)索引屬于存儲(chǔ)結(jié)構(gòu)(物理結(jié)構(gòu))。循環(huán)隊(duì)列屬于【存儲(chǔ)結(jié)構(gòu)】。
數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)又稱為物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式。一個(gè)邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率。
程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)。數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于【線性結(jié)構(gòu)】。
線性表的存儲(chǔ)結(jié)構(gòu)主要分為順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)的存儲(chǔ)空間不一定是連續(xù)的。
有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。隊(duì)列是一種特殊的線性表,循環(huán)隊(duì)列按照【先進(jìn)先出】原則組織數(shù)據(jù)。
循環(huán)隊(duì)列是隊(duì)列的【順序】存儲(chǔ)結(jié)構(gòu)。數(shù)據(jù)的獨(dú)立性分為【物理獨(dú)立】性和【邏輯獨(dú)立性】。
當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序可以不用修改,稱為【物理獨(dú)立性】。3、棧和隊(duì)列棧是一種特殊的線性表,是只能在一端進(jìn)行插入和刪除的線性表,特點(diǎn)是先進(jìn)后出棧是【先進(jìn)后出】的線性表;棧具有記憶作用;對(duì)棧的插入與刪除操作中,不需要改變【棧底指針】。
假定讓元素1、2、3、A、B依次入棧,則出棧的順序是:B、A、3、2、1。棧與隊(duì)列都是線性結(jié)構(gòu),樹(shù)是非線性結(jié)構(gòu)。
支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是【?!?。棧與隊(duì)列的共同點(diǎn)是,都只允許在【端點(diǎn)處】插入和刪除元素。
棧只能順序存儲(chǔ)的描述是錯(cuò)誤的。??梢杂小卷樞蚝玩?zhǔn)健績(jī)煞N存儲(chǔ)方式。
隊(duì)列是允許在一段插入,在另一端進(jìn)行刪除的線性表,其特點(diǎn)是【先進(jìn)先出】。循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定。
循環(huán)隊(duì)列的頭指針為front,尾指針為rear,容量為maxSize,則循環(huán)隊(duì)列中元素的個(gè)數(shù)是【 (rear-front+maxSize) mod maxSize】。4、線性鏈表線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。
用鏈表表示線性表的優(yōu)點(diǎn)是【便于插入和刪除操作】。線性鏈表的存儲(chǔ)空間不一定連續(xù),且個(gè)元素的存儲(chǔ)順序是任意的。
5、樹(shù)與二叉樹(shù)在樹(shù)結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件(繼)的個(gè)數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)中最大的度稱為樹(shù)的度。二叉樹(shù)各結(jié)點(diǎn)的度只可能取值0、1、2,不可能是其它值。
換言之,知道了度為1結(jié)點(diǎn)數(shù)量的前提下,葉子結(jié)點(diǎn)或度為2的結(jié)點(diǎn)中知道其一,就可以求出總的結(jié)點(diǎn)數(shù)。上述的計(jì)算公式,關(guān)鍵要能夠應(yīng)用,例如,深度為7的滿二叉樹(shù),度為2的結(jié)點(diǎn)數(shù)量是多少?既然是滿二叉樹(shù),葉子結(jié)點(diǎn)的數(shù)量就是第7層的結(jié)點(diǎn)數(shù)量,也就是26,可以算出葉子結(jié)點(diǎn)為64,因此度為2的結(jié)點(diǎn)數(shù)是63(葉子結(jié)點(diǎn)數(shù)減去1)。
二叉樹(shù)的前序遍歷、中序遍歷、后續(xù)遍歷:前中后三個(gè)詞是相對(duì)于根來(lái)講的,前序是【根-->左-->右】,中序是【左-->根-->右】,后續(xù)是【左-->右-->根】。具體操作為:先序遍歷(D L R): 訪問(wèn)根結(jié)點(diǎn),按先序遍歷左子樹(shù),按先序遍歷右子樹(shù)。
中序遍歷(L D R): 按中序遍歷左子樹(shù),訪問(wèn)根結(jié)點(diǎn),按中序遍歷右子樹(shù)。后序遍歷(L R D): 按后序遍歷左子樹(shù),按后序遍歷右子樹(shù),訪問(wèn)根結(jié)點(diǎn)。
下面以中序遍歷為例,來(lái)講解實(shí)際的解題方法:對(duì)一棵樹(shù),將根結(jié)點(diǎn)下的左子樹(shù)用一個(gè)橢圓圈起來(lái),右子樹(shù)也用一個(gè)橢圓圈起來(lái)。之后,在左子樹(shù)上標(biāo)記上1,在根結(jié)點(diǎn)標(biāo)記上2,在右子樹(shù)上標(biāo)記上3。
對(duì)在左邊橢圓內(nèi)的左子樹(shù),現(xiàn)在把它單獨(dú)拿出來(lái)分析。把它的左子樹(shù)圈起來(lái)標(biāo)上1.1,根結(jié)點(diǎn)標(biāo)記上1.2,右子樹(shù)標(biāo)上1.3。
按照上述方法依次往下,直到樹(shù)不能拆分,然后按照“左-->根--->右”的順序?qū)懗鼋Y(jié)點(diǎn)的訪問(wèn)先后即可。6、查找技術(shù)對(duì)于長(zhǎng)度為n的線性表,順序查找最壞情況下需要比較n次。
(對(duì)數(shù)據(jù)是否有序沒(méi)有要求)。◆ 順序查找最好情況下查詢次數(shù)是1,最壞情況下是n,平均為(1+n)/2。
對(duì)于長(zhǎng)度為n的有序線性表,二分法最壞情況下只需要比較log2n次。(數(shù)據(jù)必須有序)能用二分法進(jìn)行查找的是【順序存儲(chǔ)的有序線性表】。
7、排序技術(shù)對(duì)于長(zhǎng)度為n的線性表,【冒泡排序、快速排序、簡(jiǎn)單插入排序、簡(jiǎn)單選擇排序】這四種排序方式在最壞情況下的比較次數(shù)相同,都是【n(n-1)/2】。堆排序的效率最高,是【nlog2n】。
★★ 希爾排序最壞情況下需要次比較【n1.5】。希爾排序?qū)儆凇静迦腩惻判蚍ā俊?/p>
已知數(shù)據(jù)表A中每個(gè)元素距最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)該采用的算法是【直接插入排序】。選擇排序、插入排序、快速排序、歸并排序中對(duì)內(nèi)存要求最大的是【歸并排序】。
第二部分 軟件工程基礎(chǔ) 1、軟件工程基本概念軟件是包括【程序】、【數(shù)據(jù)】及【相關(guān)文檔】的完整集合,軟件是一種邏輯產(chǎn)品。軟件工程三要素包括【方法、工具。
公共基礎(chǔ)知識(shí) 基本要求 1.掌握算法的基本概念。 2.掌握基本數(shù)據(jù)結(jié)構(gòu)及其操作。 3.掌握基本排序和查找算法。 4.掌握逐步求精的結(jié)構(gòu)化程序設(shè)計(jì)方法。 5.掌握軟件工程的基本方法,具有初步應(yīng)用相關(guān)技術(shù)進(jìn)行軟件開(kāi)發(fā)的能力。 6.掌握數(shù)據(jù)庫(kù)的基本知識(shí),了解關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)。 考試內(nèi)容 一、基本數(shù)據(jù)結(jié)構(gòu)與算法 1.算法的基本概念;算法復(fù)雜度的概念和意義(時(shí)間復(fù)雜度與空間復(fù)雜度)。 2.數(shù)據(jù)結(jié)構(gòu)的定義;數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu);數(shù)據(jù)結(jié)構(gòu)的圖形表示;線性結(jié)構(gòu)與非線性結(jié)構(gòu)的概念。 3.線性表的定義;線性表的順序存儲(chǔ)結(jié)構(gòu)及其插入與刪除運(yùn)算。 4.棧和隊(duì)列的定義;棧和隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算。 5.線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運(yùn)算。 6.樹(shù)的基本概念;二叉樹(shù)的定義及其存儲(chǔ)結(jié)構(gòu);二叉樹(shù)的前序、中序和后序遍歷。 7.順序查找與二分法查找算法;基本排序算法(交換類排序,選擇類排序,插入類排序)。 二、程序設(shè)計(jì)基礎(chǔ) 1.程序設(shè)計(jì)方法與風(fēng)格 2.結(jié)構(gòu)化程序設(shè)計(jì)。 3.面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,對(duì)象,方法,屬性及繼承與多態(tài)性。 三、軟件工程基礎(chǔ) 1.軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開(kāi)發(fā)環(huán)境。 2.結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說(shuō)明書(shū)。 3.結(jié)構(gòu)化設(shè)計(jì)方法,總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)。 4.軟件測(cè)試的方法,白盒測(cè)試與黑盒測(cè)試,測(cè)試用例設(shè)計(jì),軟件測(cè)試的實(shí)施,單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試。 5.程序的調(diào)試,靜態(tài)調(diào)試與動(dòng)態(tài)調(diào)試。 四、數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ) 1.數(shù)據(jù)庫(kù)的基本概念:數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)管理系統(tǒng),數(shù)據(jù)庫(kù)系統(tǒng)。 2.數(shù)據(jù)模型,實(shí)體聯(lián)系模型及E―R圖,從E―R圖導(dǎo)出關(guān)系數(shù)據(jù)模型。 3.關(guān)系代數(shù)運(yùn)算,包括集合運(yùn)算及選擇、投影、連接運(yùn)算,數(shù)據(jù)庫(kù)規(guī)范化理 論。 4.數(shù)據(jù)庫(kù)設(shè)計(jì)方法和步驟:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)的相關(guān)策略。 考試方式 1.公共基礎(chǔ)知識(shí)的考試方式為筆試,與C語(yǔ)言程序設(shè)計(jì)(C++語(yǔ)言程序設(shè)計(jì)、Java語(yǔ)言程序設(shè)計(jì)、Visual Basic語(yǔ)言程序設(shè)計(jì)、Visual FoxPro數(shù)據(jù)庫(kù)程序設(shè)計(jì)或Access數(shù)據(jù)庫(kù)程序設(shè)計(jì))的筆試部分合為一張?jiān)嚲?,公共基礎(chǔ)知識(shí)部分占全卷的30分。 2.公共基礎(chǔ)知識(shí)有l(wèi)0道選擇題和5道填空題。 C語(yǔ)言程序設(shè)計(jì) 基本要求 1.熟悉TURBO C集成環(huán)境。 2.熟練掌握結(jié)構(gòu)化程序設(shè)計(jì)的方法,具有良好的程序設(shè)計(jì)風(fēng)格。 3.掌握程序設(shè)計(jì)中簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)和算法。 4.TURBO C的集成環(huán)境下,能夠編寫簡(jiǎn)單的C程序,并具有基本的糾錯(cuò)和調(diào)試程序的能力。 考試內(nèi)容 一、C語(yǔ)言的結(jié)構(gòu) 1.程序的構(gòu)成,MAIN函數(shù)和其他函數(shù)。 2.頭文件,數(shù)據(jù)說(shuō)明,函數(shù)的開(kāi)始和結(jié)束標(biāo)志。 3.源程序的書(shū)寫格式。 4.C語(yǔ)言的風(fēng)格。 二、數(shù)據(jù)類型及其運(yùn)算 1.C的數(shù)據(jù)類型(基本類型,構(gòu)造類型,指針類型,空類型)及其定義方法。 2.C運(yùn)算符的種類、運(yùn)算優(yōu)先級(jí)和結(jié)合性。 3.不同類型數(shù)據(jù)間的轉(zhuǎn)換與運(yùn)算。 4.C表達(dá)式類型(賦值表達(dá)式,算術(shù)表達(dá)式,關(guān)系表達(dá)式,邏輯表達(dá)式,條件表達(dá)式,逗號(hào)表達(dá)式)和求值規(guī)則。 三、基本語(yǔ)句 1.表達(dá)式語(yǔ)句,空語(yǔ)句,復(fù)合語(yǔ)句。 2.數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用。 3.復(fù)合語(yǔ)句。 4.GOTO語(yǔ)句和語(yǔ)句標(biāo)號(hào)的使用。 四、選擇結(jié)構(gòu)程序設(shè)計(jì) 1.用IF語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)。 2.用SWITCH語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。 3.選擇結(jié)構(gòu)的嵌套。 五、循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 1.FOR循環(huán)結(jié)構(gòu)。 2.WHILE和DO WHILE循環(huán)結(jié)構(gòu)。 3.CONTINUE語(yǔ)句和BREAK語(yǔ)句。 4.循環(huán)的嵌套。 六、數(shù)組的定義和引用 1.一維數(shù)組和多維數(shù)組的定義、初始化和引用 2.字符串與字符數(shù)組。 七、函數(shù) 1.庫(kù)函數(shù)的正確調(diào)用。 2.函數(shù)的定義方法。 3.函數(shù)的類型和返回值。 4.形式參數(shù)與實(shí)在參數(shù),參數(shù)值的傳遞。 5.函數(shù)的正確調(diào)用,嵌套調(diào)用,遞歸調(diào)用。 6.局部變量和全局變量。 7.變量的存儲(chǔ)類別(自動(dòng),靜態(tài),寄存器,外部),變量的作用域和生存期。 8.內(nèi)部函數(shù)與外部函數(shù)。 八、編譯預(yù)處理 1.宏定義:不帶參數(shù)的宏定義;帶參數(shù)的宏定義。 2.“文件包含”處理。 九、指針 1.指針與指針變量的概念,指針與地址運(yùn)算符。 2.變量、數(shù)組、字符串、函數(shù)、結(jié)構(gòu)體的指針以及指向變量、數(shù)組、字符串、函數(shù)、結(jié)構(gòu)體的指針變量
計(jì)算機(jī)二級(jí)C語(yǔ)言考試公共基礎(chǔ)知識(shí)部分考試內(nèi)容:
一、基本數(shù)據(jù)結(jié)構(gòu)與算法
1. 算法的基本概念;算法復(fù)雜度的概念和意義(時(shí)間復(fù)雜度與空間復(fù)雜度)。
2. 數(shù)據(jù)結(jié)構(gòu)的定義;數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu);數(shù)據(jù)結(jié)構(gòu)的圖形表示;線性結(jié)構(gòu)與非線性結(jié)構(gòu)的概念。
3. 線性表的定義;線性表的順序存儲(chǔ)結(jié)構(gòu)及其插入與刪除運(yùn)算。
4. 棧和隊(duì)列的定義;棧和隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算。
5. 線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運(yùn)算。
6. 樹(shù)的基本概念;二叉樹(shù)的定義及其存儲(chǔ)結(jié)構(gòu);二叉樹(shù)的前序、中序和后序遍歷。
7. 順序查找與二分法查找算法;基本排序算法(交換類排序,選擇類排序,插入類排序)。
二、程序設(shè)計(jì)基礎(chǔ)
1. 程序設(shè)計(jì)方法與風(fēng)格。
2. 結(jié)構(gòu)化程序設(shè)計(jì)。
3. 面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,對(duì)象,方法,屬性及繼承與多態(tài)性。
三、軟件工程基礎(chǔ)
1. 軟件工程基本概念,軟件生命周戎概念,軟件工具與軟件開(kāi)發(fā)環(huán)境。
2. 結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說(shuō)明書(shū)。
3. 結(jié)構(gòu)化設(shè)計(jì)方法,總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)。
4. 軟件測(cè)試的方法,白盒測(cè)試與黑盒測(cè)試,測(cè)試用例設(shè)計(jì),軟件測(cè)試的實(shí)施,單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試。
5. 程序的調(diào)試,靜態(tài)調(diào)試與動(dòng)態(tài)調(diào)試。
四、數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)
1. 數(shù)據(jù)庫(kù)的基本概念:數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)管理系統(tǒng),數(shù)據(jù)庫(kù)系統(tǒng)。
2. 數(shù)據(jù)模型,實(shí)體聯(lián)系模型及E-R圖,從E-R圖導(dǎo)出關(guān)系數(shù)據(jù)模型。
3. 關(guān)系代數(shù)運(yùn)算,包括集合運(yùn)算及選擇、投影、連接運(yùn)算,數(shù)據(jù)庫(kù)規(guī)范化理論。
4. 數(shù)據(jù)庫(kù)設(shè)計(jì)方法和步驟:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)的相關(guān)策略。
計(jì)算機(jī)二級(jí)公共基礎(chǔ)知識(shí)總結(jié) 數(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)擁有足夠的情報(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)算、數(shù)據(jù)傳輸。
算法的控制結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。 算法基本設(shè)計(jì)方法:列舉法、歸納法、遞推、遞歸、減斗遞推技術(shù)、回溯法。
算法復(fù)雜度:算法時(shí)間復(fù)雜度和算法空間復(fù)雜度。 算法時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量。
算法空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。 1.2 數(shù)據(jù)結(jié)構(gòu)的基本基本概念 數(shù)據(jù)結(jié)構(gòu)研究的三個(gè)方面: (1)數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu); (2)在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系,即數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu); (3)對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算。
數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合。 數(shù)據(jù)的邏輯結(jié)構(gòu)包含: (1)表示數(shù)據(jù)元素的信息; (2)表示各數(shù)據(jù)元素之間的前后件關(guān)系。
數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等。 線性結(jié)構(gòu)條件: (1)有且只有一個(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) 線性表由一組數(shù)據(jù)元素構(gòu)成,數(shù)據(jù)元素的位置只取決于自己的序號(hào),元素之間的相對(duì)位置是線性的。
在復(fù)雜線性表中,由若干項(xiàng)數(shù)據(jù)元素組成的數(shù)據(jù)元素稱為記錄,而由多個(gè)記錄構(gòu)成的線性表又稱為文件。 非空線性表的結(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í),稱為空表。 線性表的順序存儲(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ù)。 順序表的運(yùn)算:插入、刪除。
(詳見(jiàn)14--16頁(yè)) 1.4 棧和隊(duì)列 棧是限定在一端進(jìn)行插入與刪除的線性表,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。 棧按照“先進(jìn)后出”(FILO)或“后進(jìn)先出”(LIFO)組織數(shù)據(jù),棧具有記憶作用。
用top表示棧頂位置,用bottom表示棧底。 棧的基本運(yùn)算:(1)插入元素稱為入棧運(yùn)算;(2)刪除元素稱為退棧運(yùn)算;(3)讀棧頂元素是將棧頂元素賦給一個(gè)指定的變量,此時(shí)指針無(wú)變化。
隊(duì)列是指允許在一端(隊(duì)尾)進(jìn)入插入,而在另一端(隊(duì)頭)進(jìn)行刪除的線性表。Rear指針指向隊(duì)尾,front指針指向隊(duì)頭。
隊(duì)列是“先進(jìn)行出”(FIFO)或“后進(jìn)后出”(LILO)的線性表。 隊(duì)列運(yùn)算包括(1)入隊(duì)運(yùn)算:從隊(duì)尾插入一個(gè)元素;(2)退隊(duì)運(yùn)算:從隊(duì)頭刪除一個(gè)元素。
循環(huán)隊(duì)列:s=0表示隊(duì)列空,s=1且front=rear表示隊(duì)列滿 1.5 線性鏈表 數(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)稱為空表,如果是兩指針:左指針(Llink)指向前件結(jié)點(diǎn),右指針(Rlink)指向后件結(jié)點(diǎn)。 線性鏈表的基本運(yùn)算:查找、插入、刪除。
1.6 樹(shù)與二叉樹(shù) 樹(shù)是一種簡(jiǎn)單的非線性結(jié)構(gòu),所有元素之間具有明顯的層次特性。 在樹(shù)結(jié)構(gòu)中,每一個(gè)結(jié)點(diǎn)只有一個(gè)前件,稱為父結(jié)點(diǎn),沒(méi)有前件的結(jié)點(diǎn)只有一個(gè),稱為樹(shù)的根結(jié)點(diǎn),簡(jiǎn)稱樹(shù)的根。
每一個(gè)結(jié)點(diǎn)可以有多個(gè)后件,稱為該結(jié)點(diǎn)的子結(jié)點(diǎn)。沒(méi)有后件的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn)。
在樹(shù)結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件的個(gè)數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)中最大的度稱為樹(shù)的度。樹(shù)的最大層次稱為樹(shù)的深度。
二叉樹(shù)的特點(diǎn):(1)非空二叉樹(shù)只有一個(gè)根結(jié)點(diǎn);(2)每一個(gè)結(jié)點(diǎn)最多有兩棵子樹(shù),且分別稱為該結(jié)點(diǎn)的左子樹(shù)與右子樹(shù)。 二叉樹(shù)的基本性質(zhì): (1)在二叉樹(shù)的第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn); (2)深度為m的二叉樹(shù)最多有2m-1個(gè)結(jié)點(diǎn); (3)度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)。
二級(jí)所有考試科目的公共基礎(chǔ)部分是一樣的!公共基礎(chǔ)知識(shí)總結(jié) 第一章數(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)擁有足夠的情報(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)算、數(shù)據(jù)傳輸。
算法的控制結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。算法基本設(shè)計(jì)方法:列舉法、歸納法、遞推、遞歸、減斗遞推技術(shù)、回溯法。
算法復(fù)雜度:算法時(shí)間復(fù)雜度和算法空間復(fù)雜度。算法時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量。
算法空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。1.2 數(shù)據(jù)結(jié)構(gòu)的基本基本概念數(shù)據(jù)結(jié)構(gòu)研究的三個(gè)方面:(1)數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu);(2)在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系,即數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu);(3)對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算。
數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合。數(shù)據(jù)的邏輯結(jié)構(gòu)包含:(1)表示數(shù)據(jù)元素的信息;(2)表示各數(shù)據(jù)元素之間的前后件關(guān)系。
數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等。線性結(jié)構(gòu)條件:(1)有且只有一個(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)線性表由一組數(shù)據(jù)元素構(gòu)成,數(shù)據(jù)元素的位置只取決于自己的序號(hào),元素之間的相對(duì)位置是線性的。
在復(fù)雜線性表中,由若干項(xiàng)數(shù)據(jù)元素組成的數(shù)據(jù)元素稱為記錄,而由多個(gè)記錄構(gòu)成的線性表又稱為文件。非空線性表的結(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í),稱為空表。線性表的順序存儲(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ù)。順序表的運(yùn)算:插入、刪除。
(詳見(jiàn)14--16頁(yè))1.4 棧和隊(duì)列棧是限定在一端進(jìn)行插入與刪除的線性表,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。棧按照“先進(jìn)后出”(FILO)或“后進(jìn)先出”(LIFO)組織數(shù)據(jù),棧具有記憶作用。
用top表示棧頂位置,用bottom表示棧底。棧的基本運(yùn)算:(1)插入元素稱為入棧運(yùn)算;(2)刪除元素稱為退棧運(yùn)算;(3)讀棧頂元素是將棧頂元素賦給一個(gè)指定的變量,此時(shí)指針無(wú)變化。
隊(duì)列是指允許在一端(隊(duì)尾)進(jìn)入插入,而在另一端(隊(duì)頭)進(jìn)行刪除的線性表。Rear指針指向隊(duì)尾,front指針指向隊(duì)頭。
隊(duì)列是“先進(jìn)行出”(FIFO)或“后進(jìn)后出”(LILO)的線性表。隊(duì)列運(yùn)算包括(1)入隊(duì)運(yùn)算:從隊(duì)尾插入一個(gè)元素;(2)退隊(duì)運(yùn)算:從隊(duì)頭刪除一個(gè)元素。
循環(huán)隊(duì)列:s=0表示隊(duì)列空,s=1且front=rear表示隊(duì)列滿1.5 線性鏈表數(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)稱為空表,如果是兩指針:左指針(Llink)指向前件結(jié)點(diǎn),右指針(Rlink)指向后件結(jié)點(diǎn)。線性鏈表的基本運(yùn)算:查找、插入、刪除。
1.6 樹(shù)與二叉樹(shù)樹(shù)是一種簡(jiǎn)單的非線性結(jié)構(gòu),所有元素之間具有明顯的層次特性。在樹(shù)結(jié)構(gòu)中,每一個(gè)結(jié)點(diǎn)只有一個(gè)前件,稱為父結(jié)點(diǎn),沒(méi)有前件的結(jié)點(diǎn)只有一個(gè),稱為樹(shù)的根結(jié)點(diǎn),簡(jiǎn)稱樹(shù)的根。
每一個(gè)結(jié)點(diǎn)可以有多個(gè)后件,稱為該結(jié)點(diǎn)的子結(jié)點(diǎn)。沒(méi)有后件的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn)。
在樹(shù)結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件的個(gè)數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)中最大的度稱為樹(shù)的度。樹(shù)的最大層次稱為樹(shù)的深度。
二叉樹(shù)的特點(diǎn):(1)非空二叉樹(shù)只有一個(gè)根結(jié)點(diǎn);(2)每一個(gè)結(jié)點(diǎn)最多有兩棵子樹(shù),且分別稱為該結(jié)點(diǎn)的左子樹(shù)與右子樹(shù)。二叉樹(shù)的基本性質(zhì):(1)在二叉樹(shù)的第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn);(2)深度為m的二叉樹(shù)最多有2m-1個(gè)結(jié)點(diǎn);(3)度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥(niǎo). 頁(yè)面生成時(shí)間:3.440秒