版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、講師:尹成QQ:77025077博客:http:/ 傳智播客傳智播客http:/高薪就業(yè)高薪就業(yè)第0章 學(xué)習(xí)方法與概念概述概 論3/44課程性質(zhì)課程性質(zhì)m“數(shù)據(jù)結(jié)構(gòu)與算法”是計(jì)算機(jī)專業(yè)的核心課程之一,本科教學(xué)的重中之重。m本課程q上承“程序設(shè)計(jì)”,q下啟“算法分析與設(shè)計(jì) ,q是操作系統(tǒng)、軟件工程、數(shù)據(jù)庫概論、編譯技術(shù)、人工智能、計(jì)算機(jī)圖形學(xué)等專業(yè)課程的必修先行課。m所有應(yīng)用軟件都要使用到各種數(shù)據(jù)結(jié)構(gòu)和算法編寫程序。 概 論4/44概 論5/44m程序 = 數(shù)據(jù)結(jié)構(gòu) + 算法m對(duì)清華大學(xué)計(jì)算機(jī)系歷屆畢業(yè)生和部分研究生追蹤調(diào)查顯示:幾乎所有的學(xué)生都認(rèn)為“數(shù)據(jù)結(jié)構(gòu)”是他們?cè)趯W(xué)校里學(xué)過的最有用的課程之
2、一。 國內(nèi)外許多軟件開發(fā)機(jī)構(gòu)要求考核的基本課程之一。 公司面試或筆試考核的絕大部分內(nèi)容是數(shù)據(jù)結(jié)構(gòu)或算法。 計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程等專業(yè)研究生考試必考科目。概 論6/44教學(xué)目的教學(xué)目的m程序=數(shù)據(jù)結(jié)構(gòu)+算法q基本的數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和數(shù)據(jù)的運(yùn)算.q算法設(shè)計(jì)和分析技術(shù)m解決問題能力q抽象能力:問題-數(shù)據(jù)-算法q合理組織數(shù)據(jù)、有效表示數(shù)據(jù)、有效處理數(shù)據(jù)m提高程序設(shè)計(jì)的質(zhì)量概 論7/44學(xué)習(xí)要求m熟練掌握基本內(nèi)容:熟知概念,理解算法,熟練編程,靈活使用上課上機(jī)m學(xué)有余力的同學(xué):擴(kuò)展學(xué)習(xí)教材內(nèi)容m準(zhǔn)備找工作的同學(xué):大量編程概 論8/44學(xué)習(xí)可能遇到的問題m問題一:太抽象,聽不懂m建議:主
3、動(dòng)學(xué)習(xí)q樹立信心活著沒打到,上課小CASEq預(yù)習(xí)聰明鳥先飛早入林q提問式學(xué)習(xí)我遇到這樣的問題,怎么解決?q復(fù)習(xí)總結(jié)、提高、實(shí)踐q請(qǐng)教老師、同學(xué):會(huì)哭的孩子有奶吃,沒人說你笨,別不好意思概 論9/44學(xué)習(xí)可能遇到的問題m問題二:算法思想能懂,但代碼看不懂m建議:多寫多想q多讀代碼先弄懂思想,再看代碼q找個(gè)實(shí)例,手工執(zhí)行代碼q上機(jī)調(diào)試,用不同的數(shù)據(jù)看輸入輸出q經(jīng)典代碼要能寫出來(不是背,是用自己的風(fēng)格寫)概 論10/44學(xué)習(xí)可能遇到的問題m問題三:不會(huì)編寫代碼,或代碼質(zhì)量不高m建議:多寫多練q有思想,寫不出代碼簡化條件,先寫簡單的,再擴(kuò)展q邊界處理不周到:舉出各種出現(xiàn)邊界情況的實(shí)例,抽象邊界問題q
4、代碼不清晰:學(xué)習(xí)養(yǎng)成好的編程風(fēng)格概 論11/44學(xué)習(xí)可能遇到的問題m問題四:學(xué)習(xí)吃力,但不好意思問問題m建議:鍛煉開朗的性格q交流、溝通是必要的素質(zhì)q情商比智商更重要q虛心學(xué)習(xí)的人大家都?xì)g迎q前提:自己做了最大的努力概 論12/44什么是數(shù)據(jù)結(jié)構(gòu)什么是數(shù)據(jù)結(jié)構(gòu)用計(jì)算機(jī)解決一個(gè)具體的問題,需要以下幾個(gè)步驟:q 從具體問題抽象出一個(gè)適當(dāng)?shù)臄?shù)學(xué)模型;q 設(shè)計(jì)一個(gè)解此數(shù)學(xué)模型的算法;q 編出程序;q 進(jìn)行測(cè)試、調(diào)整直至得到最終解答。尋求數(shù)學(xué)模型的實(shí)質(zhì):尋求數(shù)學(xué)模型的實(shí)質(zhì): 分析問題,從中分析問題,從中提取操作的對(duì)象提取操作的對(duì)象,并找出這些,并找出這些操作對(duì)象之操作對(duì)象之間含有的關(guān)系間含有的關(guān)系,然后
5、用,然后用數(shù)學(xué)的語言加以描述數(shù)學(xué)的語言加以描述。概 論13/44什么是數(shù)據(jù)結(jié)構(gòu)什么是數(shù)據(jù)結(jié)構(gòu)m很多問題求解最后都轉(zhuǎn)化為求解數(shù)學(xué)方程或數(shù)學(xué)方程組。m如:求解梁架結(jié)構(gòu)中應(yīng)力的數(shù)學(xué)模型為線性方程組。m預(yù)報(bào)人口增長情況的數(shù)學(xué)模型為微分方程。m然而:當(dāng)計(jì)算機(jī)進(jìn)入非數(shù)值計(jì)算領(lǐng)域,特別是用在管理上的時(shí)候,計(jì)算機(jī)的操作對(duì)象之間的關(guān)系就無法用數(shù)學(xué)方程加以描述了。非數(shù)值計(jì)算問題的數(shù)學(xué)模型正是本課程要討論的數(shù)據(jù)結(jié)構(gòu)。非數(shù)值計(jì)算問題的數(shù)學(xué)模型正是本課程要討論的數(shù)據(jù)結(jié)構(gòu)。概 論14/44例例1:計(jì)算機(jī)和人對(duì)奕問題。計(jì)算機(jī)和人對(duì)奕問題。計(jì)算機(jī)可以根據(jù)當(dāng)前棋盤格局,來預(yù)測(cè)棋局發(fā)展的趨計(jì)算機(jī)可以根據(jù)當(dāng)前棋盤格局,來預(yù)測(cè)棋局發(fā)
6、展的趨勢(shì),甚至最后結(jié)局。勢(shì),甚至最后結(jié)局。數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu):對(duì)弈樹對(duì)弈樹。OO當(dāng)前格局當(dāng)前格局派生格局派生格局OOOOOOOOOO概 論15/44例例2:地圖的著色問題。地圖的著色問題。對(duì)地圖上的每個(gè)區(qū)域染一種顏色,并且要求相鄰的兩對(duì)地圖上的每個(gè)區(qū)域染一種顏色,并且要求相鄰的兩個(gè)區(qū)域不能具有相同顏色。個(gè)區(qū)域不能具有相同顏色。數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu):圖圖。12435671234567紅紅綠綠綠綠藍(lán)藍(lán)紅紅黑黑綠綠1243567用最少的顏色染色用最少的顏色染色概 論16/44例例3 3:圖書館的書目檢索自動(dòng)化問題:圖書館的書目檢索自動(dòng)化問題登錄號(hào):書名:作者名:分類號(hào):出版單位:出版時(shí)間:價(jià)格:書目卡片概
7、 論17/44例如例如書目文件按書名按作者名按分類號(hào)索引表線性的數(shù)據(jù)結(jié)構(gòu)線性的數(shù)據(jù)結(jié)構(gòu)概 論18/44數(shù)學(xué)數(shù)學(xué)計(jì)算機(jī)計(jì)算機(jī)硬件硬件計(jì)算機(jī)計(jì)算機(jī)軟件軟件數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學(xué)、計(jì)算機(jī)硬件和計(jì)算機(jī)軟件三者之間的一門數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學(xué)、計(jì)算機(jī)硬件和計(jì)算機(jī)軟件三者之間的一門核心課程核心課程。概 論19/44數(shù)據(jù)結(jié)構(gòu)m數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計(jì)算的程序設(shè)計(jì)問題時(shí)處理的操作對(duì)象以及它們之間的關(guān)系和操作等等的學(xué)科。q解決數(shù)值計(jì)算問題的中心: 建立適當(dāng)?shù)臄?shù)學(xué)模型。q解決非數(shù)值計(jì)算問題的中心: 尋找適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)。概 論20/44m數(shù)據(jù)結(jié)構(gòu)的討論一般涉及以下三個(gè)方面的內(nèi)容:1 數(shù)據(jù)成員以及它們相互之
8、間的邏輯關(guān)系,也稱為數(shù)據(jù)的邏輯結(jié)構(gòu),簡稱為數(shù)據(jù)結(jié)構(gòu);2 數(shù)據(jù)成員及其關(guān)系在計(jì)算機(jī)存儲(chǔ)器內(nèi)的存儲(chǔ)表示,也稱為數(shù)據(jù)的物理結(jié)構(gòu),簡稱為存儲(chǔ)結(jié)構(gòu);3 施加于該數(shù)據(jù)結(jié)構(gòu)上的操作。概 論21/44概 論22/44邏輯結(jié)構(gòu)(數(shù)據(jù)結(jié)構(gòu))m相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。m元素(結(jié)點(diǎn))類型:q基本數(shù)據(jù)類型:整型、實(shí)型、布爾型q復(fù)合數(shù)據(jù)類型:數(shù)組、結(jié)構(gòu)體、類概 論23/44邏輯結(jié)構(gòu)(數(shù)據(jù)結(jié)構(gòu))m結(jié)點(diǎn)間的關(guān)系結(jié)構(gòu)q先明確結(jié)點(diǎn),再刻畫結(jié)點(diǎn)之間的關(guān)系q自頂向下的設(shè)計(jì)概 論24/44集合集合線性結(jié)構(gòu)線性結(jié)構(gòu)樹形結(jié)構(gòu)樹形結(jié)構(gòu)圖狀結(jié)構(gòu)圖狀結(jié)構(gòu)(網(wǎng)狀結(jié)構(gòu))(網(wǎng)狀結(jié)構(gòu))概 論25/44數(shù)據(jù)結(jié)構(gòu)的形式定義m數(shù)據(jù)結(jié)構(gòu)
9、的形式定義q數(shù)據(jù)結(jié)構(gòu)是一個(gè)二元組 Data_Structure=(K,R) 其中,K是數(shù)據(jù)元素的有限集,R是K上關(guān)系的有限集。 例如:list=(K,R) 其中:K=1,2,3,4,5,6,7 R=,圖形表示圖形表示1234567概 論26/44物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu))m數(shù)據(jù)邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示和實(shí)現(xiàn)。m包含數(shù)據(jù)元素的表示和關(guān)系的表示。概 論27/441.2.2 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)m計(jì)算機(jī)的主存儲(chǔ)器的特性q其存儲(chǔ)空間提供了一種具有非負(fù)整數(shù)地址編碼的,相鄰單元的集合,其基本的存儲(chǔ)單元是字節(jié)q計(jì)算機(jī)的指令具有按地址隨機(jī)訪問存儲(chǔ)空間內(nèi)任意單元的能力,訪問不同地址所需的訪問時(shí)間基本相同 概 論28/44數(shù)
10、據(jù)元素的表示m數(shù)據(jù)元素的表示: 通常用位串表示一個(gè)數(shù)據(jù)元素q例,用八位表示一個(gè)字符、三十二位表示一個(gè)整數(shù)請(qǐng)問: 在C+語言中表示一個(gè)學(xué)生的基本信息(姓名、年齡、性別),最少需要多少位?概 論29/44數(shù)據(jù)元素之間關(guān)系的表示m順序存儲(chǔ)結(jié)構(gòu)q結(jié)點(diǎn)間的邏輯關(guān)系由存儲(chǔ)單元的鄰接關(guān)系來體現(xiàn)。 通常順序存儲(chǔ)結(jié)構(gòu)是借助于語言的數(shù)組來描述的。m鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)q不要求邏輯上相鄰的結(jié)點(diǎn)物理上也相鄰,結(jié)點(diǎn)間的邏輯關(guān)系是由附加的指針字段表示的。 概 論30/44順序(sequential)的方法 m用一塊無空隙的存儲(chǔ)區(qū)域存儲(chǔ)數(shù)據(jù)稱為順序存儲(chǔ)m順序存儲(chǔ)把一組結(jié)點(diǎn)存儲(chǔ)在按地址相鄰的順序存儲(chǔ)單元里,結(jié)點(diǎn)間的邏輯后繼關(guān)系用存儲(chǔ)
11、單元的自然順序關(guān)系來表達(dá) m順序存儲(chǔ)法為使用整數(shù)編碼來訪問數(shù)據(jù)結(jié)點(diǎn)提供了便利 概 論31/44元素n.元素i.元素2元素1存儲(chǔ)內(nèi)容存儲(chǔ)內(nèi)容LoLo+mLo+(i-1)*mLo+(n-1)*m存儲(chǔ)地址存儲(chǔ)地址順序存儲(chǔ)結(jié)構(gòu)概 論32/44鏈接(linked)的方法 m利用指針,在結(jié)點(diǎn)的存儲(chǔ)結(jié)構(gòu)中附加指針字段稱為鏈接法。兩個(gè)結(jié)點(diǎn)的邏輯后繼關(guān)系可以用指針的指向來表達(dá)m任意的邏輯關(guān)系r,也可以使用這種指針地址來表達(dá)。一般的做法是將數(shù)據(jù)結(jié)點(diǎn)分為兩部分:q一部分存放結(jié)點(diǎn)本身的數(shù)據(jù),稱為數(shù)據(jù)字段q另一部分存放指針,稱指針字段,鏈接到某個(gè)后繼結(jié)點(diǎn),指向它的存儲(chǔ)單元的開始地址。多個(gè)相關(guān)結(jié)點(diǎn)的依次鏈接就會(huì)形成鏈索概
12、 論33/441536元素21536元素21346元素31346元素3 元素4 元素4存儲(chǔ)地址 存儲(chǔ)內(nèi)容 指針 1345 元素1 1400 1346 元素4 . . . 1400 元素2 1536 . . . 1536 元素3 13461400元素1h1400元素1h鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)概 論34/44索引(indexing)的方法 m索引法是順序存儲(chǔ)法的一種推廣,它也使用整數(shù)編碼來訪問數(shù)據(jù)結(jié)點(diǎn)位置m索引方法是要建造一個(gè)由整數(shù)域Z映射到存儲(chǔ)地址域D的函數(shù)Y:ZD,把結(jié)點(diǎn)的整數(shù)索引值 zZ映射到結(jié)點(diǎn)的存儲(chǔ)地址 dD 。它稱為索引函數(shù),一般而言它并不象數(shù)組那樣,是簡單的線性函數(shù)。概 論35/44索引(in
13、dexing)的方法概 論36/44散列(hashing)的方法 m散列方法是索引方法的一種延伸和擴(kuò)展m利用一種稱為散列函數(shù)(hash functions)進(jìn)行索引值的計(jì)算,然后通過索引表求出結(jié)點(diǎn)的指針地址m散列函數(shù)是將字符串s映射到非負(fù)整數(shù)z的一類函數(shù)h: S Z , 對(duì)任意的 s S,散列函數(shù) h(s)=z,z Z概 論37/44邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)密切相關(guān)m算法設(shè)計(jì)取決于選定的邏輯結(jié)構(gòu)。m算法實(shí)現(xiàn)依賴于采用的存儲(chǔ)結(jié)構(gòu)。概 論38/44 數(shù)據(jù)的邏輯結(jié)構(gòu)數(shù)據(jù)的邏輯結(jié)構(gòu) 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu) 數(shù)據(jù)的運(yùn)算:檢索、排序、插入、刪除、修改等數(shù)據(jù)的運(yùn)算:檢索、排序、插入、刪除、修改等
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 系統(tǒng)容錯(cuò)設(shè)計(jì)思路
- 世界名曲解讀課程
- 求職簡歷制作指導(dǎo)模板
- 二零二五版房產(chǎn)抵押購銷與房地產(chǎn)項(xiàng)目運(yùn)營管理合同3篇
- 二零二五年度旅游產(chǎn)品居間服務(wù)合同2篇
- 二零二五年度生物降解材料研發(fā)合作協(xié)議3篇
- 二零二五版兼職研發(fā)人員技術(shù)成果保密合同3篇
- 雅安職業(yè)技術(shù)學(xué)院《Python語言》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版公司向個(gè)人提供藝術(shù)品購買借款合同3篇
- 二零二五年度房地產(chǎn)法律法規(guī)咨詢居間服務(wù)合同6篇
- 細(xì)胞庫建設(shè)與標(biāo)準(zhǔn)制定-洞察分析
- 2024年國家公務(wù)員錄用考試公共基礎(chǔ)知識(shí)復(fù)習(xí)題庫2500題及答案
- DB3309T 98-2023 登步黃金瓜生產(chǎn)技術(shù)規(guī)程
- DBJ41-T 108-2011 鋼絲網(wǎng)架水泥膨脹珍珠巖夾芯板隔墻應(yīng)用技術(shù)規(guī)程
- 2025年學(xué)長引領(lǐng)的讀書會(huì)定期活動(dòng)合同
- 表內(nèi)乘除法口算l練習(xí)題1200道a4打印
- 《EICC培訓(xùn)講義》課件
- 2025年四川省政府直屬事業(yè)單位招聘管理單位筆試遴選500模擬題附帶答案詳解
- 2024年物業(yè)公司服務(wù)質(zhì)量保證合同條款
- 文言文閱讀之理解實(shí)詞含義(講義)-2025年中考語文專項(xiàng)復(fù)習(xí)
- JCT587-2012 玻璃纖維纏繞增強(qiáng)熱固性樹脂耐腐蝕立式貯罐
評(píng)論
0/150
提交評(píng)論