第一篇:數(shù)據(jù)結(jié)構(gòu)總結(jié)[推薦]
《數(shù)據(jù)結(jié)構(gòu)與算法》課程學(xué)習(xí)總結(jié)報(bào)告
本學(xué)期開(kāi)設(shè)的《數(shù)據(jù)結(jié)構(gòu)與算法》課程已經(jīng)告一段落,現(xiàn)就其知識(shí)點(diǎn)及其掌握情況、學(xué)習(xí)體會(huì)以及對(duì)該門(mén)課程的教學(xué)建議等方面進(jìn)行學(xué)習(xí)總結(jié)。
一、《數(shù)據(jù)結(jié)構(gòu)與算法》知識(shí)點(diǎn)
第一章是這門(mén)學(xué)科的基礎(chǔ)章節(jié),從整體方面介紹了“數(shù)據(jù)結(jié)構(gòu)和算法”,同時(shí)引入相關(guān)的學(xué)術(shù)概念和術(shù)語(yǔ),如數(shù)據(jù)、數(shù)據(jù)元素、數(shù)據(jù)類(lèi)型以及數(shù)據(jù)結(jié)構(gòu)的定義。重點(diǎn)是數(shù)據(jù)結(jié)構(gòu)的括邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和運(yùn)算集合的含義及其相互聯(lián)系。數(shù)據(jù)結(jié)構(gòu)和兩大邏輯結(jié)構(gòu)的4四種常用存儲(chǔ)方法;邏輯結(jié)構(gòu)分為四類(lèi):集合型、線(xiàn)性、樹(shù)形和圖形結(jié)構(gòu),數(shù)據(jù)元素的存儲(chǔ)結(jié)構(gòu)分為:順序存儲(chǔ)、鏈接存儲(chǔ)、索引存儲(chǔ)和散列存儲(chǔ)四類(lèi)。難點(diǎn)是算法復(fù)雜度的分析方法和性能的分析。
第二章詳細(xì)地分析了順序表。介紹了順序表的相關(guān)概念及其有關(guān)運(yùn)算?;具\(yùn)算有:初始化表、求表長(zhǎng)、排序、元素的查找、插入及刪除等。元素查找方法有:簡(jiǎn)單順序查找、二分查找和分塊查找。排序方法有:直接插入排序、希爾排序、冒泡排序、快速排序、直接選擇排序及歸并排序等,在各種算法思想的先分析后,要弄清各種算法的時(shí)間復(fù)雜度與空間性能的優(yōu)點(diǎn)和缺點(diǎn),在什么特定的場(chǎng)合適合哪種算法思想。最后介紹了順序串的概念,順序串是順序表的一個(gè)特例;區(qū)別在于組成順序串的數(shù)據(jù)元素是一組字符,其重點(diǎn)在于串的模式匹配。
第三章介紹鏈表。鏈表中數(shù)據(jù)元素的存儲(chǔ)不一定是連續(xù)的,還可以占用任意的、不連續(xù)的物理存儲(chǔ)區(qū)域。與順序表相比,鏈表的插入、刪除不需要移動(dòng)元素,給算法的效率帶來(lái)較大的提高,且在存儲(chǔ)空間上有動(dòng)態(tài)申請(qǐng)的優(yōu)點(diǎn)。這一章中介紹了鏈表的節(jié)點(diǎn)結(jié)構(gòu)、靜態(tài)與動(dòng)態(tài)鏈表的概念、鏈表的基本運(yùn)算(如求表長(zhǎng)、插入、查找、刪除等)、單鏈表的建立(頭插法和尾插法)以及雙向循環(huán)鏈表的定義、結(jié)構(gòu)、功能和基本算法。弄清其個(gè)運(yùn)算的算法思想及其時(shí)間復(fù)雜度和空間性能。最后介紹了鏈表之中存儲(chǔ)結(jié)構(gòu)在實(shí)際中的相關(guān)應(yīng)用。
第四章,堆棧是運(yùn)算受限制的線(xiàn)性結(jié)構(gòu)。其基本運(yùn)算方法與順序表和鏈表運(yùn)算方法基本相同,不同的是堆棧須遵循“先進(jìn)后出”的規(guī)則,對(duì)堆棧的操作只能在棧頂進(jìn)行;堆棧在文字處理,匹配問(wèn)題和算術(shù)表達(dá)式的求值問(wèn)題方面的應(yīng)用。
第五章,隊(duì)列是一種夠類(lèi)似堆棧的線(xiàn)性結(jié)構(gòu)。其基本運(yùn)算方法與順序表和鏈表運(yùn)算方法基本相同,不同的是堆棧須遵循“先進(jìn)先出”的規(guī)則,對(duì)堆棧的操作只能在棧頂進(jìn)行;其運(yùn)算有入隊(duì)、出隊(duì)等操作。在介紹隊(duì)列時(shí),提出了循環(huán)隊(duì)列的概念,以避免“假溢出”的現(xiàn)象。
第六章介紹了特殊矩陣和廣義表的概念與應(yīng)用。其中,特殊矩陣包括對(duì)稱(chēng)矩陣、三角矩陣、對(duì)角矩陣和稀疏矩陣,書(shū)中分別詳細(xì)介紹了它們的存儲(chǔ)結(jié)構(gòu)。其中三元組和十字鏈表這兩種結(jié)構(gòu)尤為重要;對(duì)著兩種結(jié)構(gòu)的建立了應(yīng)用要掌握。稀疏矩陣的應(yīng)用包括轉(zhuǎn)置和加法運(yùn)算等。最后介紹了廣義表的相關(guān)概念及存儲(chǔ)結(jié)構(gòu),關(guān)于它的應(yīng)用,課本中舉了m元多項(xiàng)式的表示問(wèn)題。
第七章二叉樹(shù)的知識(shí)是重點(diǎn)內(nèi)容。在介紹有關(guān)概念時(shí),提到了二叉樹(shù)的性質(zhì)以及兩種特殊的二叉樹(shù):完全二叉樹(shù)和滿(mǎn)二叉樹(shù)。接著介紹二叉樹(shù)的順序存儲(chǔ)和鏈接存儲(chǔ)以及生成算法。重點(diǎn)介紹二叉樹(shù)的遍歷算法(遞歸算法、先序、中序和后序遍歷非遞歸算法)和線(xiàn)索二叉樹(shù)。二叉樹(shù)的應(yīng)用:基本算法、哈弗曼樹(shù)、二叉排序樹(shù)和堆排序,其中關(guān)于二叉排序樹(shù)和哈弗曼書(shū)的構(gòu)建是重點(diǎn)。
第八章介紹了樹(shù)。樹(shù)與二叉樹(shù)是不同的概念。教材介紹了樹(shù)和森林的概念、遍歷和存儲(chǔ)結(jié)構(gòu),還有樹(shù)、森林和二叉樹(shù)的相互關(guān)系,樹(shù)或森林怎樣轉(zhuǎn)化成二叉樹(shù),二叉樹(shù)又如何轉(zhuǎn)換為樹(shù)和森林等算法。
第九章,散列結(jié)構(gòu)是一種查找效率很高的一種數(shù)據(jù)結(jié)構(gòu)。本章的主要知識(shí)點(diǎn)有:散列結(jié)
構(gòu)的概念及其存儲(chǔ)結(jié)構(gòu)、散列函數(shù)、兩種沖突處理方法、線(xiàn)性探測(cè)散列和鏈地址散列的基本算法以及散列結(jié)構(gòu)的查找性能分析。
最后一章介紹了圖的概念及其應(yīng)用,是本書(shū)的難點(diǎn)。圖的存儲(chǔ)結(jié)構(gòu)的知識(shí)點(diǎn)有:鄰接矩陣、鄰接表、逆鄰接表、十字鏈表和鄰接多重表。圖的遍歷包括圖的深度優(yōu)先搜索遍歷和廣度優(yōu)先搜索遍歷。其余知識(shí)點(diǎn)有:有向圖、連通圖、生成樹(shù)和森林、最短路徑問(wèn)題和有向無(wú)環(huán)圖及其應(yīng)用。有向無(wú)環(huán)圖重點(diǎn)理解AOV網(wǎng)和拓?fù)渑判蚣捌渌惴ā?/p>
二、對(duì)各知識(shí)點(diǎn)的掌握情況
總體來(lái)看,對(duì)教材中的知識(shí)點(diǎn)理解較為完善,但各個(gè)章節(jié)均出現(xiàn)有個(gè)別知識(shí)點(diǎn)較為陌生的現(xiàn)象,對(duì)某些具體的問(wèn)題和應(yīng)用仍有一些模糊與措手。各個(gè)章節(jié)出現(xiàn)的知識(shí)點(diǎn)理解和掌握情況明確一下。
第一章中我對(duì)數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu)的概念理解較為透徹,熟悉數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)。算法的時(shí)間、空間性能分析是重點(diǎn),同樣也是難點(diǎn),尤其是空間性能分析需要加強(qiáng)。在某些強(qiáng)大與復(fù)雜的算法面前的處理有些棘手。
第二章,順序表的概念、生成算法理解較為清晰,并且熟悉簡(jiǎn)單順序查找和二分查找,對(duì)分塊查找較為含糊。刪除方面的問(wèn)題比較容易些。排序問(wèn)題中,由于冒泡排序在大一C語(yǔ)言課上已經(jīng)學(xué)習(xí)過(guò),再來(lái)學(xué)習(xí)感覺(jué)相對(duì)輕松些。對(duì)插入排序和選擇排序理解良好,但是,在實(shí)際運(yùn)用中仍然出現(xiàn)明顯不熟練的現(xiàn)象。由于在歸并排序?qū)W習(xí)中感覺(jué)較吃力,現(xiàn)在對(duì)這種排序方法仍然非常模糊,所以需要花較多的時(shí)間來(lái)補(bǔ)習(xí)。此外串的模式匹配也是較難理解的一個(gè)地方。
第三章鏈表中,除對(duì)雙向循環(huán)鏈表這一知識(shí)點(diǎn)理解困難之外,在對(duì)鏈表進(jìn)行插入刪除和排序相關(guān)操作上同順序表的操作基本相當(dāng)。其他的知識(shí)點(diǎn)像單鏈表的建立和基本算法等都較為熟悉。
第四章和第五章有關(guān)堆棧以及隊(duì)列的知識(shí)點(diǎn)比較少,除有關(guān)算法較為特殊以外,其余算法都是先前學(xué)過(guò)的順序表和鏈表的知識(shí),加上思想上較為重視,因此這部分內(nèi)容是我對(duì)全書(shū)掌握最好的一部分。在一些實(shí)際問(wèn)題的應(yīng)用與處理方面,對(duì)其進(jìn)行存儲(chǔ)結(jié)構(gòu)的選擇還是需要認(rèn)真考慮的。在算法的時(shí)間復(fù)雜度和空間性能的分析仍有些困難。
第六章的學(xué)習(xí)感覺(jué)較為困難的部分在于矩陣的應(yīng)用上。在矩陣的存儲(chǔ)結(jié)構(gòu)中,使用三元組表發(fā)相對(duì)較為簡(jiǎn)單,而使用十字鏈表就有些困難了。但在某些問(wèn)題的處理上又必須或從節(jié)省空間考慮采用十字鏈表來(lái)處理,想矩陣的加法運(yùn)算。廣義表的定義還是比較容易理解的,其存儲(chǔ)結(jié)構(gòu)也不難掌握,關(guān)于應(yīng)用也只局限于在多項(xiàng)式的表示上。
第七章是全書(shū)的重點(diǎn)。在這一章中概念和定義都很多,有些很昏人但都很重要,要區(qū)分開(kāi)來(lái)。二叉樹(shù)的性質(zhì)容易懂卻很難記憶。對(duì)二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)和遍歷算法這部分內(nèi)容掌握較好,能夠熟練運(yùn)用。關(guān)于二叉排序樹(shù)和的哈弗曼樹(shù)卻相對(duì)有些壓力,其生成和對(duì)其關(guān)鍵字的插入和刪除時(shí)重點(diǎn)。
第八章關(guān)于樹(shù)的分析,首先要明確樹(shù)和二叉樹(shù)的區(qū)別,以及書(shū)中的相關(guān)定義和概念。關(guān)于二叉樹(shù)、樹(shù)和森林之間的轉(zhuǎn)換和遍歷方法是重點(diǎn),但不算是難。接著就是數(shù)的存儲(chǔ)結(jié)構(gòu)的選擇及轉(zhuǎn)化為二叉樹(shù)的算法,這部分有些吃力。再就介紹了特殊的樹(shù)-B樹(shù),關(guān)于對(duì)B樹(shù)的操作,插入關(guān)鍵字是中帶領(lǐng)和難點(diǎn)。
第九章散列結(jié)構(gòu)這一章理解比較完善的知識(shí)點(diǎn)有:基本概念和存儲(chǔ)結(jié)構(gòu)。散列函數(shù)中直接定址法和除留余數(shù)法學(xué)得比較扎實(shí),對(duì)數(shù)字分析法等方法則感覺(jué)較為陌生。對(duì)兩種沖突處理的算法思想的理解良好,問(wèn)題在于用C語(yǔ)言描述上。
最后一章,圖及其應(yīng)用中,相關(guān)定義及其概念很多,容易混淆,這就要慢慢來(lái),仔細(xì)分辨。圖的鄰接矩陣、鄰接表表示法及其之間的轉(zhuǎn)換時(shí)重點(diǎn)和難點(diǎn)。而對(duì)十字鏈表和鄰接多重表的表示法則較為陌生。感覺(jué)理解較為吃力的內(nèi)容有圖的遍歷(包括深度和廣度優(yōu)先遍歷),以及最小生成樹(shù)的問(wèn)題。最短路徑、AOV網(wǎng)、關(guān)鍵路徑、AOE網(wǎng)和拓?fù)渑判虻膶W(xué)習(xí)也是相對(duì)較輕松的。,三、學(xué)習(xí)體會(huì)
在學(xué)習(xí)開(kāi)始,王教授就明確提出它不是一種計(jì)算機(jī)語(yǔ)言,不會(huì)介紹新的關(guān)鍵詞,而是通過(guò)學(xué)習(xí)可以設(shè)計(jì)出良好的算法,高效地組織數(shù)據(jù)。一個(gè)程序無(wú)論采用何種語(yǔ)言,其基本算法思想不會(huì)改變。聯(lián)系到在大一和大二上學(xué)期學(xué)習(xí)的C和C++語(yǔ)言,我深刻認(rèn)識(shí)到了這一點(diǎn)?!败浖_(kāi)發(fā)好比寫(xiě)作文,計(jì)算機(jī)語(yǔ)言提供了許多華麗的辭藻,而數(shù)據(jù)結(jié)構(gòu)則考慮如何將這些辭藻組織成一篇優(yōu)秀的文章來(lái)。”在學(xué)習(xí)這門(mén)課中,要熟悉對(duì)算法思想的一些描述手段,包括文字描述、圖形描述和計(jì)算機(jī)語(yǔ)言描述等。因此,計(jì)算機(jī)語(yǔ)言基礎(chǔ)是必須的,因?yàn)樗峁┝艘环N重要的算法思想描述手段——機(jī)器可識(shí)別的描述。
這門(mén)課結(jié)束之后,我總結(jié)了學(xué)習(xí)中遇到的一些問(wèn)題,最為突出的,書(shū)本上的知識(shí)與老師的講解都比較容易理解,但是當(dāng)自己采用剛學(xué)的知識(shí)點(diǎn)編寫(xiě)程序時(shí)卻感到十分棘手,有時(shí)表現(xiàn)在想不到適合題意的算法,有時(shí)表現(xiàn)在算法想出來(lái)后,只能將書(shū)本上原有的程序段謄寫(xiě)到自己的程序中再加以必要的連接以完成程序的編寫(xiě)。針對(duì)這一情況,我會(huì)嚴(yán)格要求自己,熟練掌握算法思想,盡量獨(dú)立完成程序的編寫(xiě)與修改工作,只有這樣,才能夠提高運(yùn)用知識(shí),解決問(wèn)題的能力。
四、對(duì)《數(shù)據(jù)結(jié)構(gòu)與算法》課程教學(xué)的建議
1、建議在上課過(guò)程中加大隨堂練習(xí)的分量,以便學(xué)生能當(dāng)堂消化課堂上學(xué)習(xí)的知識(shí),也便于及時(shí)了解學(xué)生對(duì)知識(shí)點(diǎn)的掌握情況,同時(shí)有助于學(xué)生保持良好的精神狀態(tài)。
2、建議在課時(shí)允許的情況下,增加習(xí)題課的分量,通過(guò)課堂的習(xí)題講解,加深對(duì)知識(shí)點(diǎn)的掌握,同時(shí)對(duì)各知識(shí)點(diǎn)的運(yùn)用有一個(gè)更為直觀(guān)和具體的認(rèn)識(shí)。
以上便是我對(duì)《數(shù)據(jù)結(jié)構(gòu)與算法》這門(mén)課的學(xué)習(xí)總結(jié),我會(huì)抓緊時(shí)間將沒(méi)有吃透的知識(shí)點(diǎn)補(bǔ)齊。今后我仍然會(huì)繼續(xù)學(xué)習(xí),克服學(xué)習(xí)中遇到的難關(guān),在打牢基礎(chǔ)的前提下向更深入的層面邁進(jìn)!
第二篇:數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)總結(jié)
數(shù)據(jù)結(jié)構(gòu)與算法課程論文綜述
摘要
如何合理的組織數(shù)據(jù)、高效率的處理數(shù)據(jù)是擴(kuò)大計(jì)算機(jī)應(yīng)用領(lǐng)域、提高軟件效率的關(guān)鍵。在軟件開(kāi)發(fā)過(guò)程中要求“高效地”組織數(shù)據(jù)和設(shè)計(jì)出“好的”算法,并使算法用程序來(lái)實(shí)現(xiàn),通過(guò)調(diào)試而成為軟件,必須具備數(shù)據(jù)結(jié)構(gòu)領(lǐng)域和算法設(shè)計(jì)領(lǐng)域的專(zhuān)門(mén)知識(shí)。
《數(shù)據(jù)結(jié)構(gòu)與算法》課程就是主要學(xué)習(xí)在軟件開(kāi)發(fā)中涉及的各種常用數(shù)據(jù)結(jié)構(gòu)及其常用算法,在此基礎(chǔ)上,學(xué)習(xí)如何利用數(shù)據(jù)結(jié)構(gòu)和算法解決一些基本的應(yīng)用問(wèn)題。
課程主要內(nèi)容
本學(xué)期一共學(xué)習(xí)了十章的內(nèi)容,下面就這十章的內(nèi)容作了詳細(xì)的介紹。第一章:數(shù)據(jù)結(jié)構(gòu)與算法概述
本章主要是對(duì)數(shù)據(jù)、數(shù)據(jù)類(lèi)型、數(shù)據(jù)結(jié)構(gòu)、算法及算法分析等基本概念的掌握,而如何合理地組織數(shù)據(jù)、高效地處理數(shù)據(jù)正是擴(kuò)大計(jì)算機(jī)領(lǐng)域、提高軟件效率的關(guān)鍵,所以對(duì)這些概念的理解就顯得十分重要。
數(shù)據(jù)是指描述客觀(guān)事物的數(shù)值、字符、相關(guān)符號(hào)等所有能夠輸入到計(jì)算機(jī)中并能被計(jì)算機(jī)程序處理的符號(hào)的總稱(chēng),其基本單位是數(shù)據(jù)元素,而數(shù)據(jù)類(lèi)型是一個(gè)同類(lèi)值的集合和定義在這個(gè)值集上的一組操作的總稱(chēng)。在高級(jí)程序語(yǔ)言中定義一種數(shù)據(jù)類(lèi)型時(shí),編譯程序編譯系統(tǒng)就能獲得如下信息:(1)、一組性質(zhì)相同的值的集合;(2)、一個(gè)預(yù)訂的存儲(chǔ)體系;(3)、定義在這個(gè)值集合上的一組操作。數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)元素之間的關(guān)系,它包括數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)、一組運(yùn)算集合;數(shù)據(jù)的邏輯結(jié)構(gòu)分為線(xiàn)性結(jié)構(gòu)和非線(xiàn)性結(jié)構(gòu)。數(shù)據(jù)的存儲(chǔ)方法有:順序存儲(chǔ)方法、鏈接存儲(chǔ)方法、索引存儲(chǔ)方法和散列存儲(chǔ)方法。接下來(lái)便是關(guān)于算法的有關(guān)概念,算法是為解決一個(gè)特定問(wèn)題而采取的確定的有限步驟集合,它具有有窮性、確定性、可行性、輸入和輸出。關(guān)于算法的性能分析,分為時(shí)間性能分析和空間性能分析。第二章:順序表及其應(yīng)用
本章主要是對(duì)順序表、順序表的結(jié)構(gòu)、數(shù)據(jù)類(lèi)型、基本算法及相關(guān)應(yīng)用的介紹。順序表是一種簡(jiǎn)單而常用的數(shù)據(jù)結(jié)構(gòu),其應(yīng)用范圍較為廣泛,包括查找問(wèn)題、排序問(wèn)題、字符處理問(wèn)題等內(nèi)容。第三章:鏈表及其應(yīng)用
鏈表是一種簡(jiǎn)單、常用的數(shù)據(jù)結(jié)構(gòu),與順序表相比,具有插入、刪除結(jié)點(diǎn)不需要移動(dòng)元素,不必事先估計(jì)存儲(chǔ)空間大小等優(yōu)點(diǎn),操作較為靈活。它有六種基本運(yùn)算:(1)、置空表(2)、求表長(zhǎng)(3)、按序號(hào)取元素(4)、按值查找
(5)、插入(6)、刪除。
單鏈表即鏈表的每個(gè)結(jié)點(diǎn)只有一個(gè)指針域,用來(lái)存儲(chǔ)其直接后繼的存儲(chǔ)位置。但是這樣就使得對(duì)結(jié)點(diǎn)前面的元素的操作很困難,所以就在每個(gè)結(jié)點(diǎn)增加一個(gè)指向其前驅(qū)結(jié)點(diǎn)的指針域,從而構(gòu)成雙向鏈表。同時(shí)由于每個(gè)結(jié)點(diǎn)的地址既存放在其前驅(qū)結(jié)點(diǎn)的后繼指針中,又存放在其后繼結(jié)點(diǎn)的前驅(qū)指針域中,所以雙向鏈表的插入操作分為前插和后插。第四章:堆棧及其應(yīng)用
首先要明白棧是一種受限制的線(xiàn)性結(jié)構(gòu),遵守“先進(jìn)后出”的規(guī)則,其插入與刪除操作都在棧頂進(jìn)行。
其次根據(jù)順序存儲(chǔ)和鏈接存儲(chǔ),棧分為順序棧和鏈棧。其中順序棧棧是用地址連續(xù)的存儲(chǔ)空間依次存儲(chǔ)棧中數(shù)據(jù)元素,并記錄當(dāng)前棧頂數(shù)據(jù)元素的位置;基本算法包括置空棧、判???、判棧滿(mǎn)、取棧頂元素、入棧和出棧。而鏈棧則使用鏈?zhǔn)酱鎯?chǔ)堆棧的數(shù)據(jù)元素,并記錄當(dāng)前棧頂數(shù)據(jù)元素的位置;每個(gè)結(jié)點(diǎn)包括data數(shù)據(jù)域:用來(lái)存放數(shù)據(jù)元素的值,next指針域:用來(lái)存放其直接后繼結(jié)點(diǎn)的存儲(chǔ)地址,其基本運(yùn)算和順序棧相同。
最后是關(guān)于堆棧的應(yīng)用:(1)、數(shù)值轉(zhuǎn)換問(wèn)題;由于在將十進(jìn)制數(shù)N轉(zhuǎn)換為d進(jìn)制數(shù)時(shí),最先得到的余數(shù)是d進(jìn)制數(shù)的最低位,在顯示結(jié)果時(shí)需要最后輸出;而最后求得的余數(shù)是d進(jìn)制數(shù)的最高位,需要最先輸出。這與棧的“先入后出”性質(zhì)相吻合,所以可用棧來(lái)存放逐次求得的余數(shù),然后輸出。(2)、括號(hào)匹配問(wèn)題;當(dāng)讀取一個(gè)表達(dá)式時(shí),一旦讀到括號(hào)就進(jìn)棧,而讀到下一個(gè)括號(hào)時(shí)就與棧中括號(hào)比較,若相匹配,則出棧,否則繼續(xù)讀取表達(dá)式。到最后,如果棧為空棧,則說(shuō)明括號(hào)匹配,否則括號(hào)不匹配。第五章:隊(duì)列及其應(yīng)用
首先和棧一樣,要知道隊(duì)列是一種受限制的線(xiàn)性結(jié)構(gòu),遵守“先進(jìn)先出”的規(guī)則,其插入在隊(duì)尾、刪除在對(duì)頭。
其次根據(jù)順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ),隊(duì)列也分為順序隊(duì)列和鏈隊(duì)列。其中順序隊(duì)列是用地址連續(xù)的向量空間依次存儲(chǔ)隊(duì)列中的元素,同時(shí)記錄當(dāng)前對(duì)頭元及隊(duì)尾元素在向量中的位置。然后是鏈隊(duì)列,即在存儲(chǔ)器中占用任意的、連續(xù)或不連續(xù)的物理存儲(chǔ)區(qū)域,使用動(dòng)態(tài)結(jié)點(diǎn)空間分配;在這其中,值得注意的是鏈隊(duì)列不存在隊(duì)滿(mǎn)的情況。
第六章:特殊矩陣、廣義表及其應(yīng)用
首先是關(guān)于矩陣的概念即存儲(chǔ)方法;
1、二維數(shù)組中元素aij的地址為:(1)、以行序?yàn)橹鞔鎯?chǔ),Loc(aij)=Loc(a00)+[j*(m+1)+i]*d(2)、以列序?yàn)橹鞔鎯?chǔ),Loc(aij)=Loc(a00)+[i*(n+1)+j]*d,其中m為行數(shù)、n為列數(shù)、d為每個(gè)元素所占的存儲(chǔ)單元的個(gè)數(shù)。
2、對(duì)稱(chēng)矩陣:即將下三角存儲(chǔ)在一個(gè)一維數(shù)組sa[k]中,其中0≤k<(n+1)/2;當(dāng)i≥j時(shí),k=i*(i+1)/2+j,當(dāng)i 3、三角矩陣:和對(duì)稱(chēng)矩陣的存儲(chǔ)思路一樣用一維數(shù)組sa[k]存儲(chǔ),若是上三角矩陣(下三角中元素均為常數(shù)c),則當(dāng)i≥j時(shí),k=i*(i+1)/2+j,當(dāng)i 4、對(duì)角矩陣:同樣存儲(chǔ)在一維數(shù)組sa[k]中,k=2i+j 5、稀疏矩陣:即矩陣中非零元素個(gè)數(shù)遠(yuǎn)遠(yuǎn)小于矩陣元素個(gè)數(shù),可用三元組表存儲(chǔ),將非零元素的值與其行號(hào)、列號(hào)存放在一起。 其次是關(guān)于廣義表的概念;廣義表是n(n≥0)個(gè)元素a1、a2、a3、?、an的有限序列,而ai或是原子或是一個(gè)廣義表,所以廣義表是遞歸定義。第七章:二叉樹(shù)及其應(yīng)用 首先關(guān)于二叉樹(shù)的概念及其性質(zhì);二叉樹(shù)是由n(n≥0)個(gè)結(jié)點(diǎn)組成的有限集合。在這其中有兩種特殊的二叉樹(shù),滿(mǎn)二叉樹(shù)和完全二叉樹(shù)。同時(shí)二叉樹(shù)具有如下五個(gè)性質(zhì):(1)、在二叉樹(shù)的第i層上至多有2(i-1)個(gè)結(jié)點(diǎn)(i>0)(2)、深度為k的二叉樹(shù)至多有2(k)-1個(gè)結(jié)點(diǎn)(k>0)(3)、對(duì)任意一棵非空二叉樹(shù),若果其葉子結(jié)點(diǎn)數(shù)為n0,度為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+1(4)、有n個(gè)結(jié)點(diǎn)的完全二叉樹(shù)(n>0)的高度為∟log2n」+1(5)、若對(duì)滿(mǎn)二叉樹(shù)或完全二叉樹(shù)按照“從上到下,每層從左到右,根結(jié)點(diǎn)編號(hào)為1”的方式編號(hào),則編號(hào)為i的結(jié)點(diǎn),它的兩個(gè)孩子結(jié)點(diǎn)編號(hào)分別為2i和2i+1,它的父節(jié)點(diǎn)編號(hào)為i/2。 其次是二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)分為順序存儲(chǔ)和鏈接存儲(chǔ)。順序存儲(chǔ)是按在完全二叉樹(shù)中的編號(hào)順序,依次存儲(chǔ)在一維數(shù)組中。這樣的存儲(chǔ)方式可以很方便地找到任一結(jié)點(diǎn)的父結(jié)點(diǎn)及左右孩子,但對(duì)于一般的二叉樹(shù)會(huì)造成很大的空間浪費(fèi),且在插入或刪除結(jié)點(diǎn)時(shí)需大量移動(dòng)節(jié)點(diǎn),不利于運(yùn)算的實(shí)現(xiàn)。那么就引出了二叉樹(shù)的鏈接存儲(chǔ),每個(gè)結(jié)點(diǎn)包括三個(gè)域,lchild指針域:記錄該結(jié)點(diǎn)左孩子的地址、rchild指針域:記錄該結(jié)點(diǎn)右孩子的地址、data域:存儲(chǔ)該結(jié)點(diǎn)的信息。 接下來(lái)是二叉樹(shù)的遍歷及線(xiàn)索化,不僅要能對(duì)二叉樹(shù)進(jìn)行遍歷、線(xiàn)索化操作,而且還要能夠根據(jù)給出的遍歷結(jié)果構(gòu)造出二叉樹(shù)。最后是二叉樹(shù)的應(yīng)用,例如哈夫曼樹(shù):為數(shù)據(jù)壓縮提供了一種方法、二叉排序樹(shù):即中序遍歷的結(jié)果是遞增的有序序列。 第八章:樹(shù)和森林及其應(yīng)用 首先是關(guān)于樹(shù)和森林的有關(guān)概念及存儲(chǔ)結(jié)構(gòu);樹(shù)或森林與二叉樹(shù)之間有一個(gè)自然地一一對(duì)應(yīng)關(guān)系,任何一個(gè)森林或一棵樹(shù)可以唯一地對(duì)應(yīng)到一棵二叉樹(shù);反之,任何一棵二叉樹(shù)也能唯一地對(duì)應(yīng)到一個(gè)森林或一棵樹(shù)。在這里,要會(huì)如何將樹(shù)或森林轉(zhuǎn)換成二叉樹(shù)、二叉樹(shù)轉(zhuǎn)換成樹(shù)或森林。對(duì)于樹(shù)的順序存儲(chǔ)結(jié)構(gòu):雙親表示法,鏈接存儲(chǔ)結(jié)構(gòu):(1)、孩子表示法(2)、孩子兄弟表示法,只需了解。 其次是樹(shù)和森林的遍歷,要知道樹(shù)只有先序遍歷和后序遍歷、森林只有先序遍歷和中序遍歷,且(1)、樹(shù)的先序遍歷與二叉樹(shù)的先序遍歷相同(2)、樹(shù)的后序遍歷與二叉樹(shù)的中序遍歷相同(3)、森林的先序遍歷和中序遍歷分別與二叉樹(shù)的先序遍歷和中序遍歷結(jié)果相同。 最后是樹(shù)的一個(gè)典型應(yīng)用——B樹(shù),它是一種平衡的多路查找樹(shù),學(xué)習(xí)是根據(jù)實(shí)例走一遍算法,理解算法即可。第九章:散列結(jié)構(gòu)及其應(yīng)用 散列結(jié)構(gòu)是以存儲(chǔ)結(jié)點(diǎn)中的關(guān)鍵字作為自變量,通過(guò)確定的函數(shù)H(即散列函數(shù)或哈希函數(shù))進(jìn)行計(jì)算,把所求的函數(shù)值作為地址存儲(chǔ)該結(jié)點(diǎn)。 首先是散列函數(shù)有:(1)、直接定址法(2)、除留余數(shù)法(3)、數(shù)字分析法(4)、平方取中法(5)、折疊法 其次是沖突處理,由于散列函數(shù)很可能將不同的關(guān)鍵字計(jì)算出相同的散列地址,所以就需要為發(fā)生沖突的關(guān)鍵字結(jié)點(diǎn)找到一個(gè)“空”的散列地址。沖突處理的方法有 1、開(kāi)放定址法:Hi=(H(key)+di)mod m,i=1,2,3,?,K(K≤m-1)例如(1)、線(xiàn)性探測(cè)再散列,取di=1,2,3,?,m-1(2)、二次探測(cè)再散列,取di=1(2),-1(2),2(2),-2(2),?(3)、偽隨機(jī)探測(cè)再散列,取di=偽隨機(jī)數(shù); 2、鏈地址法:在散列表的每一個(gè)存儲(chǔ)單元中增加一個(gè)指針域,把產(chǎn)生沖突的關(guān)鍵字以鏈表結(jié)構(gòu)存放在指針指向的單元中。第十章:圖及其應(yīng)用 首先是圖的有關(guān)概念;圖是一種數(shù)據(jù)結(jié)構(gòu),可以用二元組表示,形式化定義為:Graph(V,VR),其中V={x|x∈dataobject},R={VR},VR={<x,y> P(x,y)∧(x,y∈V)}。頂點(diǎn)的度、入度和出度,以頂點(diǎn)V為頭的弧的數(shù)目稱(chēng)為V的入度,以頂點(diǎn)V為尾的弧的數(shù)目稱(chēng)為V的出度,而出度與入度之和即為頂點(diǎn)V的度。 其次是圖的存儲(chǔ)結(jié)構(gòu);(1)、鄰接矩陣(2)、鄰接表 最后的圖遍歷和圖的典型應(yīng)用;對(duì)于遍歷圖的深度優(yōu)先算法或廣度優(yōu)先算法、最小生成樹(shù)的普利姆算法或克魯斯卡爾算法、最短路徑的迪杰特斯拉算法和弗洛伊德算法以及有向無(wú)環(huán)圖拓?fù)渑判蛩惴?,都需要根?jù)實(shí)例走一遍算法,從而掌握這些算法。 心得體會(huì) 最開(kāi)始學(xué)習(xí)這門(mén)課時(shí),我對(duì)它沒(méi)有很深刻的認(rèn)識(shí),只是聽(tīng)說(shuō)這門(mén)課比較難。學(xué)習(xí)起來(lái)會(huì)比較累。通過(guò)這一學(xué)期的學(xué)習(xí)也確實(shí)證實(shí)了這一點(diǎn)。在學(xué)習(xí)這門(mén)課的過(guò)程中自己也確實(shí)遇到了一些問(wèn)題,主要是書(shū)本上的知識(shí)與老師的講解都比較容易理解,但是當(dāng)自己利用已學(xué)的知識(shí)編寫(xiě)程序時(shí)就感到非常的棘手,很多時(shí)候都是把大概的算法思想想出來(lái)后,又把書(shū)本上的程序抄寫(xiě)一遍來(lái)完成程序的編寫(xiě)。針對(duì)這一問(wèn)題以后自己會(huì)盡量學(xué)習(xí)擺脫掉書(shū)本,自己慢慢學(xué)會(huì)獨(dú)立編寫(xiě)程序。 結(jié)語(yǔ) 通過(guò)對(duì)數(shù)據(jù)結(jié)構(gòu)與算法的整理和實(shí)際應(yīng)用,我深刻了解到數(shù)據(jù)結(jié)構(gòu)與算法的重要性,同時(shí)也加深了對(duì)它的認(rèn)識(shí)和了解,了解到了數(shù)據(jù)結(jié)構(gòu)與算法在生活、工作等生活各個(gè)方面的重要性和不可缺少性。我通過(guò)整理數(shù)據(jù)結(jié)構(gòu)與算法的學(xué)習(xí)而獲得的極大收獲。我相信這次的學(xué)習(xí)會(huì)對(duì)我以后的學(xué)習(xí)和工作產(chǎn)生非常大的影響力。 參考文獻(xiàn) 《數(shù)據(jù)結(jié)構(gòu)與算法》(第二版)王昆侖 李紅 主編 “數(shù)據(jù)結(jié)構(gòu)”課程總結(jié) 計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)從1994年開(kāi)始為我校專(zhuān)科生開(kāi)設(shè)“數(shù)據(jù)結(jié)構(gòu)”課程,2004年開(kāi)始為本科生開(kāi)設(shè)這門(mén)課程。由于本門(mén)課程的教學(xué)從教材、講授、實(shí)驗(yàn)指導(dǎo)都體現(xiàn)了先進(jìn)的教育理念,該課程的教學(xué)體系科學(xué)、完整,教學(xué)手段與方法先進(jìn),課程特色鮮明,2006年被評(píng)為赤峰學(xué)院本科層次精品課。幾年來(lái),數(shù)據(jù)結(jié)構(gòu)課題組成員從以下幾個(gè)方面對(duì)本門(mén)課程進(jìn)行了建設(shè)和改革。 一、課程建設(shè)指導(dǎo)思想、定位和特色 1.學(xué)科地位 “數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)的一門(mén)學(xué)科基礎(chǔ)課,是本專(zhuān)業(yè)和相關(guān)專(zhuān)業(yè)必修課。本課程的教學(xué)目標(biāo)是培養(yǎng)學(xué)生通過(guò)理解、分析和研究計(jì)算機(jī)處理的數(shù)據(jù)對(duì)象的特性,從而選擇適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和相應(yīng)的算法,并熟練掌握算法的時(shí)間分析和空間分析技巧。“數(shù)據(jù)結(jié)構(gòu)”還是計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)部分專(zhuān)業(yè)課的先導(dǎo)課,如“數(shù)據(jù)庫(kù)原理與應(yīng)用”、“計(jì)算機(jī)操作系統(tǒng)”、“計(jì)算機(jī)編譯原理”和“面向?qū)ο蟮某绦蛟O(shè)計(jì)”等。所以本課程的教學(xué)效果將直接影響到學(xué)生對(duì)其它后續(xù)專(zhuān)業(yè)課的學(xué)習(xí),因此,該課程在專(zhuān)業(yè)建設(shè)的地位十分重要。 “數(shù)據(jù)結(jié)構(gòu)”是一門(mén)應(yīng)用性很強(qiáng)的課程,本課程要求學(xué)生在掌握各種數(shù)據(jù)結(jié)構(gòu),特別是存儲(chǔ)結(jié)構(gòu)和有關(guān)算法的基礎(chǔ)上,通過(guò)大量的上機(jī)實(shí)例把難以理解的、抽象的概念轉(zhuǎn)化為計(jì)算機(jī)能夠正確運(yùn)行的程序,從而提高學(xué)生運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的能力。2.課程特色 根據(jù)課程建設(shè)的規(guī)劃和我系實(shí)際,我們針對(duì)《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)開(kāi)展討論,并就實(shí)驗(yàn)、圖書(shū)資料等方面進(jìn)行建設(shè)。在不斷的教學(xué)實(shí)踐中,我們按照精品課建設(shè)要求,積極探索,積累了豐富的教學(xué)經(jīng)驗(yàn)。 采用國(guó)內(nèi)經(jīng)典教材,結(jié)合前沿的研究領(lǐng)域和最新科研動(dòng)態(tài),豐富教學(xué)內(nèi)容,讓學(xué)生了解數(shù)據(jù)結(jié)構(gòu)的實(shí)際應(yīng)用價(jià)值。 采用課堂教學(xué)與大作業(yè)相結(jié)合,上機(jī)實(shí)踐為補(bǔ)充的教學(xué)模式,培養(yǎng)學(xué)生的創(chuàng)業(yè)創(chuàng)新素質(zhì)和團(tuán)隊(duì)協(xié)作精神。 二、教師隊(duì)伍建設(shè) 1.良好的學(xué)緣結(jié)構(gòu) 任課教師的業(yè)務(wù)水平和教學(xué)水平是影響課程建設(shè)質(zhì)量的重要因素。為此,我們不斷加強(qiáng)師資隊(duì)伍建設(shè),特別注重青年教師和實(shí)驗(yàn)指導(dǎo)教師的培養(yǎng)。在擔(dān)任該課程教學(xué)任務(wù)的5名教師中,教授1名、副教授2名、講師2名,學(xué)歷結(jié)構(gòu)為碩士4人、學(xué)士1人,45歲以下3人,35歲以下2人。本教師梯隊(duì)學(xué)歷層次較高,職稱(chēng)、年齡結(jié)構(gòu)合理,便于本門(mén)課程的建設(shè)和發(fā)展。 2.加強(qiáng)學(xué)術(shù)交流,不斷提高團(tuán)隊(duì)整體教學(xué)和科研水平 在教學(xué)過(guò)程中,我們采取了互相聽(tīng)課,舉行公開(kāi)課、觀(guān)摩課等方式,經(jīng)常交流教書(shū)育人和教學(xué)改革方面的經(jīng)驗(yàn),不斷提高任課教師的教學(xué)水平和學(xué)術(shù)水平。 以范體貴教授為學(xué)科帶頭人的教學(xué)研究梯隊(duì),具有豐富的教學(xué)經(jīng)驗(yàn)和高昂的教學(xué)熱情,同時(shí)具備較高的教學(xué)研究和科學(xué)研究水平。教學(xué)梯隊(duì)成員在搞好教學(xué)的同時(shí),積極申報(bào)承擔(dān)各級(jí)各類(lèi)教學(xué)研究和科學(xué)研究課題,并參加國(guó)內(nèi)外相關(guān)學(xué)科的科研、教學(xué)等方面的學(xué)術(shù)交流活動(dòng)。選派范體貴、門(mén)愛(ài)華兩位老師參加全國(guó)計(jì)算機(jī)年會(huì)和全國(guó)數(shù)據(jù)庫(kù)學(xué)術(shù)會(huì)議,與國(guó)內(nèi)其他高校著名學(xué)者進(jìn)行了教學(xué)、科研等方面的交流,學(xué)到許多寶貴的經(jīng)驗(yàn)和方法。 注重與其他高校的合作和交流,學(xué)習(xí)其他院校好的教學(xué)經(jīng)驗(yàn)和方法。選派主講教師門(mén)愛(ài)華老師到清華大學(xué)計(jì)算機(jī)系做訪(fǎng)問(wèn)學(xué)者,訪(fǎng)學(xué)期間門(mén)老師聽(tīng)取了本課程的講授,經(jīng)常與講授本門(mén)課程的資深教授嚴(yán)蔚敏老師、殷仁昆老師進(jìn)行交流、學(xué)習(xí)。二位老師都給予了具體的指導(dǎo)和建議,為我校本門(mén)課程的改革和發(fā)展提供了有利的幫助。請(qǐng)國(guó)內(nèi)著名高校學(xué)者來(lái)我系講學(xué)傳授經(jīng)驗(yàn),在教學(xué)、科研等方面給予具體的指導(dǎo)。2008年10月清華大學(xué)著名數(shù)據(jù)庫(kù)專(zhuān)家馮建華教授來(lái)我系講學(xué),課題組成員與馮教授進(jìn)行了深入的交流,在教學(xué)和科研方面都有很大的收獲。 3.開(kāi)展科學(xué)研究,積極申請(qǐng)科研立項(xiàng) 數(shù)據(jù)結(jié)構(gòu)課題小組成員積極進(jìn)行相關(guān)領(lǐng)域的科學(xué)研究,幾年來(lái)發(fā)表相關(guān)論文30余篇,承擔(dān)自治區(qū)級(jí)科研項(xiàng)目四個(gè),赤峰市科技局科研項(xiàng)目一個(gè),院級(jí)項(xiàng)目一個(gè),其中3個(gè)項(xiàng)目已經(jīng)完成并通過(guò)驗(yàn)收。目前在研的一個(gè)科研項(xiàng)目是與清華大學(xué)合作申請(qǐng)的計(jì)算機(jī)前沿領(lǐng)域研究課題,相信通過(guò)該項(xiàng)目的研究和合作,對(duì)我系的科研工作會(huì)起到極大的促進(jìn)作用,同時(shí)能夠使我系科研水平上一個(gè)新的臺(tái)階。課題組成員經(jīng)過(guò)幾年的努力,在各方面都取得了一些成績(jī)。范體貴、門(mén)愛(ài)華、張國(guó)祥、王玉紅四位教師分別獲得“赤峰學(xué)院課堂教學(xué)質(zhì)量?jī)?yōu)秀獎(jiǎng)”,范體貴、門(mén)愛(ài)華兩位教師多次獲得“赤峰學(xué)院科研成果優(yōu)秀獎(jiǎng)”的獎(jiǎng)勵(lì)。王玉紅老師獲得“畢業(yè)實(shí)習(xí)優(yōu)秀指導(dǎo)教師“稱(chēng)號(hào),門(mén)愛(ài)華老師2007年、2008年連續(xù)獲得“畢業(yè)論文優(yōu)秀指導(dǎo)教師”獎(jiǎng)勵(lì)。 建立了良好的人才培養(yǎng)制度,在學(xué)校和系里的大力支持下,鼓勵(lì)現(xiàn)有教師提高學(xué)歷與引進(jìn)高學(xué)歷教師相結(jié)合,經(jīng)過(guò)幾年的建設(shè),已經(jīng)形成了一支以中青年為主的學(xué)科梯隊(duì)。積極鼓勵(lì)中青年教師到國(guó)內(nèi)名校進(jìn)修或攻讀碩士、博士學(xué)位,門(mén)愛(ài)華、董潔、王玉紅分別考取了東北大學(xué)和遼寧工程技術(shù)大學(xué)的碩士研究生,已圓滿(mǎn)完成學(xué)業(yè)并獲得碩士學(xué)位。 三、教學(xué)內(nèi)容、教材建設(shè) 1.理論環(huán)節(jié)教學(xué)內(nèi)容及學(xué)時(shí)分配 “數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)科學(xué)課程體系中核心課程之首,作為學(xué)科的專(zhuān)業(yè)基礎(chǔ)課,具有承上啟下的重要作用。對(duì)應(yīng)于學(xué)科中問(wèn)題求解的理論、抽象和設(shè)計(jì)的方法論,本課程內(nèi)容體系結(jié)構(gòu)分為概念表述、構(gòu)建數(shù)據(jù)模型、設(shè)計(jì)算法三個(gè)層面,突出數(shù)據(jù)組織方法與處理技術(shù),貫穿程序設(shè)計(jì)和軟件工程新思想和新觀(guān)點(diǎn)。理論學(xué)時(shí)設(shè)置為72學(xué)時(shí)。 2.實(shí)踐環(huán)節(jié)教學(xué)內(nèi)容及學(xué)時(shí)分配 上機(jī)實(shí)踐和課程設(shè)計(jì)重在培養(yǎng)學(xué)生軟件設(shè)計(jì)的綜合能力。在基本的課程實(shí)習(xí)基礎(chǔ)上,自2001年起開(kāi)設(shè)了數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì),使課程的實(shí)踐環(huán)節(jié)總學(xué)時(shí)數(shù)增加到60學(xué)時(shí)。提出了課程設(shè)計(jì)的規(guī)范要求,突出關(guān)鍵技術(shù)要點(diǎn),貫穿基本技能訓(xùn)練主線(xiàn),加強(qiáng)實(shí)踐能力培養(yǎng)。 通過(guò)課程設(shè)計(jì)的訓(xùn)練,突出構(gòu)造性思維訓(xùn)練的特征,提高了學(xué)生組織數(shù)據(jù)與進(jìn)行編寫(xiě)大型程序能力,使學(xué)生更好地理解和掌握了算法設(shè)計(jì)所需的技術(shù),為專(zhuān)業(yè)學(xué)習(xí)打下良好的基礎(chǔ)。課程設(shè)計(jì)題目(動(dòng)態(tài)更新、完善):航空客運(yùn)訂票系統(tǒng);電梯模擬;簡(jiǎn)單行編輯程序;工資管理系統(tǒng);醫(yī)院排隊(duì)看病活動(dòng)的模擬;學(xué)籍管理系統(tǒng);圖書(shū)管理系統(tǒng)等。3.教材建設(shè) 教材建設(shè)是課程建設(shè)的重要環(huán)節(jié)。為此,根據(jù)教學(xué)大綱和本課程的發(fā)展需要,在本課程教材的選用上注重教材的先進(jìn)性和科學(xué)性,我們選用了清華大學(xué)出版社嚴(yán)蔚敏教授等編寫(xiě)的《數(shù)據(jù)結(jié)構(gòu)》(C語(yǔ)言版)作為教材,本書(shū)內(nèi)容豐富、體系結(jié)構(gòu)嚴(yán)謹(jǐn)、概念清晰、易學(xué)易懂,也是多所院校指定的考研參考教材,完全適合我系計(jì)算機(jī)科學(xué)與技術(shù)、信息與計(jì)算科學(xué)專(zhuān)業(yè)學(xué)生的需要。任課教師則多方面參考相關(guān)教材,選擇部分編寫(xiě)精彩的內(nèi)容充實(shí)到教案中。任課教師們廣泛閱讀相關(guān)文獻(xiàn),了解該領(lǐng)域前沿知識(shí),并且在授課過(guò)程中介紹給學(xué)生,以開(kāi)闊學(xué)生的視野,拓寬學(xué)生的知識(shí)面。同時(shí),根據(jù)教材內(nèi)容和實(shí)際教學(xué)要求,編寫(xiě)了《數(shù)據(jù)結(jié)構(gòu)上機(jī)指導(dǎo)與習(xí)題就解答》,并正式出版了《數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)教程》一書(shū),該書(shū)作為自治區(qū)教育廳統(tǒng)編教材已在各高校廣泛使用。 四、教學(xué)方法和教學(xué)手段 1.教學(xué)方法 在教學(xué)方法上,講課、討論和專(zhuān)題講座等多種形式并用,以科學(xué)、生動(dòng)靈活的講授方式傳授知識(shí),培養(yǎng)學(xué)生的創(chuàng)造思維。教師在認(rèn)真組織課堂講授,注意各環(huán)節(jié)正常運(yùn)行的同時(shí),還針對(duì)不同的教學(xué)內(nèi)容采取不同的方法進(jìn)行講解,做到課程內(nèi)容既條理清晰、深入淺出,又重點(diǎn)突出、特色鮮明。教學(xué)內(nèi)容靈活,既有必講的內(nèi)容,也有針對(duì)不同專(zhuān)業(yè)需要和特點(diǎn)選講的內(nèi)容。 通過(guò)布置適量的課后習(xí)題,使學(xué)生能夠進(jìn)一步鞏固和提高對(duì)課上所學(xué)知識(shí)的領(lǐng)悟和應(yīng)用能力。我們?cè)谶x擇習(xí)題時(shí),一方面注重三基(基本理論,基本方法,基本技能)知識(shí)的掌握,另一方面也充分考慮知識(shí)的靈活應(yīng)用,使學(xué)生能多角度、多方法地解決問(wèn)題,既鍛煉他們的系統(tǒng)性思維,又提高分析解決問(wèn)題的能力。每?jī)芍馨才乓淮瘟?xí)題課,由指導(dǎo)教師集中解決同學(xué)課上課下遇到的問(wèn)題。 上機(jī)實(shí)踐是學(xué)生對(duì)本門(mén)課程所學(xué)知識(shí)的一種全面、綜合的能力訓(xùn)練,是與課堂聽(tīng)講、自學(xué)和練習(xí)相輔相成必不可少的一個(gè)教學(xué)環(huán)節(jié),也是對(duì)課堂教學(xué)效果的一種檢驗(yàn)。通常,實(shí)習(xí)題中的問(wèn)題比平時(shí)的習(xí)題復(fù)雜得多,也更接近實(shí)際。實(shí)習(xí)題注重原理與應(yīng)用的結(jié)合,目的讓學(xué)生學(xué)會(huì)如何把書(shū)上學(xué)到的知識(shí)運(yùn)用于解決實(shí)際問(wèn)題的過(guò)程中去,培養(yǎng)從事軟件開(kāi)發(fā)設(shè)計(jì)工作所必需的基本技能。同時(shí),通過(guò)實(shí)踐能使書(shū)上的知識(shí)變“活”,起到深化理解和靈活掌握教學(xué)內(nèi)容的作用。平時(shí)的練習(xí)較偏重于如何編寫(xiě)功能單一的“小”算法,而實(shí)習(xí)題是軟件設(shè)計(jì)的綜合訓(xùn)練,包括問(wèn)題分析,總體結(jié)構(gòu)設(shè)計(jì),用戶(hù)界面設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧,可以多人合作,有利于一整套軟件工程規(guī)范的訓(xùn)練和科學(xué)作風(fēng)的培養(yǎng)。此外,實(shí)踐環(huán)節(jié)中有很重要的一點(diǎn),就是機(jī)器是比任何教師都嚴(yán)格的主考官。 2.教學(xué)手段 為了適應(yīng)現(xiàn)代化教學(xué)的需求,我們?cè)趥鹘y(tǒng)教學(xué)的基礎(chǔ)上,充分利用現(xiàn)代科學(xué)技術(shù),廣泛應(yīng)用多媒體教學(xué)課件和教學(xué)軟件。將授課內(nèi)容制作成了圖文并茂的多媒體課件,利用多媒體技術(shù)對(duì)數(shù)據(jù)結(jié)構(gòu)輔之以形象的動(dòng)畫(huà),動(dòng)態(tài)演示抽象的復(fù)雜數(shù)據(jù)結(jié)構(gòu)的變化,用板書(shū)補(bǔ)充某些推導(dǎo)過(guò)程并完成和學(xué)生互動(dòng)的內(nèi)容,改變了以前課堂教學(xué)單調(diào)的弊病,激發(fā)了學(xué)生的學(xué)習(xí)興趣。使用多媒體技術(shù)還可以直接在課堂上演示算法的實(shí)現(xiàn)過(guò)程,讓學(xué)生熟悉算法實(shí)現(xiàn)的環(huán)境和方法,增強(qiáng)了該門(mén)課的實(shí)踐性,提高了課堂授課效率和教學(xué)質(zhì)量,取得了滿(mǎn)意的教學(xué)效果。教師們?yōu)榱烁玫剡m應(yīng)社會(huì)的發(fā)展和改革的需要,本著強(qiáng)化算法的思想,在現(xiàn)有數(shù)據(jù)結(jié)構(gòu)內(nèi)容的基礎(chǔ)上,補(bǔ)充了新的算法,拓寬了學(xué)生的知識(shí)面。 五、課程建設(shè)取得的成果 1.教學(xué)科研論文 1)The Boundary Element Analysis for The Thermal Conduction of The Thermal Equipment。Proceedings of International Conference on Computational Physics, Rinton Press, US,(2005)199-202(SCI) 2)基于訪(fǎng)問(wèn)控制列表的路由器防火墻在網(wǎng)絡(luò)安全中的應(yīng)用研究。計(jì)算機(jī)與網(wǎng)絡(luò) 24,(2004)52-53(核刊)3)信息系統(tǒng)在企業(yè)現(xiàn)代化管理中的應(yīng)用?!渡虉?chǎng)現(xiàn)代化(學(xué)術(shù)版)》,2005.2 25-26(核刊)4)可信網(wǎng)絡(luò)基本概念與基本屬性研究?!冻喾鍖W(xué)院學(xué)報(bào) 》2007.5 5)基于包過(guò)濾技術(shù)路由器防火墻在網(wǎng)絡(luò)安全中的研究?!队?jì)算機(jī)應(yīng)用研究》,2007,vol23 6)Research on The Architecture of Tru-Network。2008 International Symposium on Information science and Engineering 7)路由器防火墻對(duì)沖擊波、震蕩波病毒的過(guò)濾研究?!冻喾鍖W(xué)院學(xué)報(bào)》 2005.1 67-68 8)菲涅耳圓孔衍射的數(shù)值模擬?!冻喾鍖W(xué)院學(xué)報(bào)》 2006.1 9)復(fù)雜軸承流體動(dòng)力學(xué)特性的邊界元分析。《潤(rùn)滑與密封》 2006.3(核刊 EI核心刊源)10)三葉軸承流體動(dòng)力學(xué)特性的邊界元分析。《潤(rùn)滑與密封》 2006.5(核刊 EI核心刊源)11)164-182Hf核的低能譜和電磁躍遷的相互作用玻色子模型。《高能物理與核物理》 28(12),(2004)119-122(核刊, SCI收錄)12)基于訪(fǎng)問(wèn)控制列表的路由器防火墻在網(wǎng)絡(luò)安全中的應(yīng)用研究?!队?jì)算機(jī)與網(wǎng)絡(luò)》 2004.24 13)赤峰學(xué)院校園網(wǎng)路由器、交換機(jī)的選型及遠(yuǎn)程登錄?!冻喾褰逃龑W(xué)院學(xué)報(bào)》2004.5 81-82 14)《XML數(shù)據(jù)庫(kù)存儲(chǔ)策略綜述》 《計(jì)算機(jī)科學(xué)》 2005年9月(核刊)15)《XML數(shù)據(jù)庫(kù)結(jié)構(gòu)連接算法之研究》《計(jì)算機(jī)科學(xué)》 2007年6月(核刊)16)《XML中XPath包含關(guān)系判定算法》《內(nèi)蒙古大學(xué)學(xué)報(bào)》2008年10月(核刊)17)《基于關(guān)系數(shù)據(jù)庫(kù)的XML數(shù)據(jù)的存儲(chǔ)研究》《赤峰學(xué)院學(xué)報(bào)》 2006年 3 月 18)《XML數(shù)據(jù)庫(kù)模式匹配算法研究》 《赤峰學(xué)院學(xué)報(bào)》 2007年 5月 19)《Internet蠕蟲(chóng)的分析與研究》 《赤峰學(xué)院學(xué)報(bào)》 2005年 4月 20)《如何防止外部網(wǎng)絡(luò)的攻擊》 《赤峰學(xué)院學(xué)報(bào)》 2004年2月 21)《射頻IC卡消費(fèi)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》 《赤峰學(xué)院學(xué)報(bào)》 2008年10月 22)《XPath片斷的分析與研究》 《赤峰學(xué)院學(xué)報(bào)》 2008年1月 23)《一種基于層次結(jié)構(gòu)的XML編碼技術(shù)》 中國(guó)教育信息化》 2009年4月(核刊)24)《VC++實(shí)現(xiàn)圖形、數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的思路》赤峰教育學(xué)院學(xué)報(bào) 2002年第2月 25)《基于IP組播的多媒體會(huì)議系統(tǒng)的設(shè)計(jì)》 赤峰教育學(xué)院學(xué)報(bào) 2002年6月 26)論文《個(gè)性化WINDOWS系統(tǒng)“開(kāi)始”菜單》赤峰教育學(xué)院學(xué)報(bào) 2003年4月 27)淺談DEBUG程序的主要命令用法 赤峰學(xué)院學(xué)報(bào) 2007年5月 28)powerpoint技巧在課件制作中的妙用 赤峰學(xué)院學(xué)報(bào) 2006年1月 29)淺談?dòng)肕ASM運(yùn)行匯編程序 赤峰學(xué)院學(xué)報(bào) 2005年 1月 30)XML數(shù)字簽名淺析 赤峰學(xué)院學(xué)報(bào) 2008年 5月 31)《網(wǎng)絡(luò)層的靜態(tài)路由選擇綜述》 赤峰學(xué)院學(xué)報(bào) 2005年3月 32)《離散數(shù)學(xué)在計(jì)算機(jī)教學(xué)中的作業(yè)》 赤峰學(xué)院學(xué)報(bào) 2008年1月 33)《基于模擬退火算法的油井工礦數(shù)據(jù)挖掘的應(yīng)用研究》 赤峰學(xué)院學(xué)報(bào)2009年1月 2.教研課題 1)赤峰學(xué)院校園網(wǎng)項(xiàng)目 赤峰學(xué)院 2002年-2003年(已驗(yàn)收)2)基于IP網(wǎng)QOS動(dòng)態(tài)控制研究 內(nèi)蒙教育廳 2005年-2007年(已結(jié)題)3)基于結(jié)構(gòu)索引XML模式匹配方法研究 內(nèi)蒙教育廳 2005年—2007年(已結(jié)題)4)XML數(shù)據(jù)庫(kù)研究 赤峰學(xué)院 2006年—2008年(已結(jié)題)5)CAI系統(tǒng)中知識(shí)個(gè)性化組織與導(dǎo)航研究 內(nèi)蒙教育廳 2003年-2005年(已結(jié)題)6)XML安全數(shù)據(jù)發(fā)布關(guān)鍵問(wèn)題研究 內(nèi)蒙教育廳 2009年—2010年(在研)3.教學(xué)獲獎(jiǎng) 1)范體貴、門(mén)愛(ài)華、張國(guó)祥、王玉紅分別獲赤峰學(xué)院2005、2006年、2007年、2008年“課堂教學(xué)質(zhì)量?jī)?yōu)秀獎(jiǎng)”; 2)門(mén)愛(ài)華2007年、2008年連續(xù)獲的“畢業(yè)論文優(yōu)秀指導(dǎo)教師”獎(jiǎng)勵(lì); 3)王玉紅2007年獲院級(jí)“畢業(yè)實(shí)習(xí)優(yōu)秀實(shí)習(xí)指導(dǎo)教師”獎(jiǎng)勵(lì); 4)2009年《數(shù)據(jù)結(jié)構(gòu)課程教學(xué)和實(shí)踐》課題”獲赤峰學(xué)院“優(yōu)秀教學(xué)成果二等獎(jiǎng)”。 數(shù)據(jù)結(jié)構(gòu)課程組 2009年5月14日 課程設(shè)計(jì)總結(jié) 通過(guò)這次的課程設(shè)計(jì),我們對(duì)數(shù)據(jù)結(jié)構(gòu)中圖的應(yīng)用有了更深的理解,并且使我們深刻的認(rèn)識(shí)到實(shí)踐的重要性,只有理論與實(shí)踐相結(jié)合才能達(dá)到很好的學(xué)習(xí)效果,學(xué)到很多東西,同時(shí)也發(fā)現(xiàn)僅僅書(shū)本的知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,需要把知識(shí)運(yùn)用到實(shí)踐中去,能力才能得到提高。由于剛開(kāi)始對(duì)圖的總體結(jié)構(gòu)不熟悉,認(rèn)真查找了一些資料,才對(duì)這次課程設(shè)計(jì)有了初步的了解。 在我們進(jìn)行課程設(shè)計(jì)時(shí),雖然在大體上算法是正確的,但時(shí)常會(huì)出現(xiàn)一些小問(wèn)題,使我們不得不花一些時(shí)間來(lái)查找、修改錯(cuò)誤。 這次課程設(shè)計(jì),不但讓我們學(xué)習(xí)了很多數(shù)據(jù)結(jié)構(gòu)的知識(shí)和C語(yǔ)言的知,還讓我熟悉了我win7的使用,以及用gdb調(diào)試程序,讓我收獲很大。 課程設(shè)計(jì)完成了,其中的余味我還在體會(huì):數(shù)據(jù)結(jié)構(gòu)是我們跨進(jìn)計(jì)算機(jī)世界的第一個(gè)檻。我們雖然已經(jīng)學(xué)完了,但是我們懂得的也只是毛皮,更多專(zhuān)業(yè)的知識(shí)還等我們?nèi)W(xué)習(xí),從現(xiàn)在開(kāi)始我們就得有精神上的緊迫感,在科技日新月異的今天,計(jì)算機(jī)人才太多了,我們只有讓自己學(xué)習(xí)更精,視野更廣,思維更高,理想更遠(yuǎn),用知識(shí)來(lái)武裝自己,用能力來(lái)證明自己,這樣,我們才能在IT行業(yè)中做出貢獻(xiàn),實(shí)現(xiàn)自身的價(jià)值。 計(jì)算機(jī)科學(xué)與技術(shù)2012.12.20 《數(shù)據(jù)結(jié)構(gòu)與算法》課程學(xué)習(xí)總結(jié)報(bào)告 100401200510計(jì)本(4)班章興春 本學(xué)期所學(xué)習(xí)的《數(shù)據(jù)結(jié)構(gòu)與算法》課程已經(jīng)告一段落,就其知識(shí)點(diǎn)及其掌握情況、學(xué)習(xí)體會(huì)以及對(duì)該門(mén)課程的教學(xué)建議等方面進(jìn)行學(xué)習(xí)總結(jié)。以便在所學(xué)習(xí)知識(shí)有更深刻的認(rèn)識(shí)。 一、《數(shù)據(jù)結(jié)構(gòu)與算法》知識(shí)點(diǎn): 學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)之前、一直以為數(shù)據(jù)結(jié)構(gòu)是一門(mén)新的語(yǔ)言、后來(lái)才知道學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)是為了更加高效的的組織數(shù)據(jù)、設(shè)計(jì)出良好的算法,而算法則是一個(gè)程序的靈魂。經(jīng)過(guò)了一學(xué)期的數(shù)據(jù)結(jié)構(gòu)了,在期末之際對(duì)其進(jìn)行總結(jié)。首先,學(xué)完數(shù)據(jù)結(jié)構(gòu)我們應(yīng)該知道數(shù)據(jù)結(jié)構(gòu)講的是什么,數(shù)據(jù)結(jié)構(gòu)課程主要是研究非數(shù)值計(jì)算的研究的程序設(shè)計(jì)問(wèn)題中所出現(xiàn)的計(jì)算機(jī)處理對(duì)象以及它們之間關(guān)系和操作的學(xué)科。 第一章主要介紹了相關(guān)概念,如數(shù)據(jù)、數(shù)據(jù)元素、數(shù)據(jù)類(lèi)型以及數(shù)據(jù)結(jié)構(gòu)的定義。其中,數(shù)據(jù)結(jié)構(gòu)包括邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和運(yùn)算集合。邏輯結(jié)構(gòu)分為四類(lèi):集合型、線(xiàn)性、樹(shù)形和圖形結(jié)構(gòu),數(shù)據(jù)元素的存儲(chǔ)結(jié)構(gòu)分為:順序存儲(chǔ)、鏈接存儲(chǔ)、索引存儲(chǔ)和散列存儲(chǔ)四類(lèi)。最后著重介紹算法性能分析,包括算法的時(shí)間性能分析以及算法的空間性能分析。 第二章具體地介紹了順序表的定義、特點(diǎn)及其主要操作,如查找、插入和刪除的實(shí)現(xiàn)。需要掌握對(duì)它們的性能估計(jì)。包括查找算法的平均查找長(zhǎng)度,插入與刪除算法中的對(duì)象平均移動(dòng)次數(shù)。 鏈表中數(shù)據(jù)元素的存儲(chǔ)不一定是連續(xù)的,還可以占用任意的、不連續(xù)的物理存儲(chǔ)區(qū)域。與順序表相比,鏈表的插入、刪除不需要移動(dòng)元素,給算法的效率帶來(lái)較大的提高。鏈表這一章中介紹了鏈表的節(jié)點(diǎn)結(jié)構(gòu)、靜態(tài)與動(dòng)態(tài)鏈表的概念、鏈表的基本運(yùn)算(如求表長(zhǎng)、插入、查找、刪除等)、單鏈表的建立(頭插法和尾插法)以及雙向循環(huán)鏈表的定義、結(jié)構(gòu)、功能和基本算法。 第三章介紹了堆棧與隊(duì)列這兩種運(yùn)算受限制的線(xiàn)性結(jié)構(gòu)。其基本運(yùn)算方法與順序表和鏈表運(yùn)算方法基本相同,不同的是堆棧須遵循“先進(jìn)后出”的規(guī)則,對(duì)堆棧的操作只能在棧頂進(jìn)行;而隊(duì)列要遵循“先進(jìn)先出”的規(guī)則,教材中列出了兩種結(jié)構(gòu)的相應(yīng)算法,如入棧、出棧、入隊(duì)、出隊(duì)等。在介紹隊(duì)列時(shí),提出了循環(huán)隊(duì)列的概念,以避免“假溢出”的現(xiàn)象。算法上要求掌握進(jìn)棧、退棧、取棧頂元素、判??蘸兄每諚5任宸N操作及掌握使用元素個(gè)數(shù)計(jì)數(shù)器及少用一個(gè)元素空間來(lái)區(qū)分隊(duì)列空、隊(duì)列滿(mǎn)的方法。 第四章串和數(shù)組中,我們知道串是一種特殊的線(xiàn)性表,是由零個(gè)或多個(gè)任意字符組成的字符序列。串的儲(chǔ)存結(jié)構(gòu)分為緊縮模式和非緊縮模式。 基本運(yùn)算需掌握求串長(zhǎng)、串賦值、連接操作、求子串、串比較、串定位、串插入、串刪除、串替換等。 第五章二叉樹(shù)的知識(shí)是重點(diǎn)內(nèi)容。在介紹有關(guān)概念時(shí),提到了二叉樹(shù)的性質(zhì)以及兩種特殊的二叉樹(shù):完全二叉樹(shù)和滿(mǎn)二叉樹(shù)。接著介紹二叉樹(shù)的順序存儲(chǔ)和鏈接存儲(chǔ)以及生成算法。重點(diǎn)介紹二叉樹(shù)的遍歷算法(遞歸算法、先序、中序和后序遍歷非遞歸算法)和線(xiàn)索二叉樹(shù)。二叉樹(shù)的應(yīng)用:基本算法、哈弗曼樹(shù)、二叉排序樹(shù)和堆排序。 樹(shù)與二叉樹(shù)是不同的概念。教材介紹了樹(shù)和森林的概念、遍歷和存儲(chǔ)結(jié)構(gòu),還有樹(shù)、森林和二叉樹(shù)的相互關(guān)系,樹(shù)或森林怎樣轉(zhuǎn)化成二叉樹(shù),二叉樹(shù)又如何轉(zhuǎn)換為樹(shù)和森林等算法。 第六章介紹了圖的概念及其應(yīng)用,圖的存儲(chǔ)結(jié)構(gòu)的知識(shí)點(diǎn)有:鄰接矩陣、鄰接表、逆鄰接表、十字鏈表和鄰接多重表。圖的遍歷包括圖的深度優(yōu)先搜索遍歷和廣度優(yōu)先搜索遍歷。其余知識(shí)點(diǎn)有:有向圖、連通圖、生成樹(shù)和森林、最短路徑問(wèn)題和有向無(wú)環(huán)圖及其應(yīng)用。有向無(wú)環(huán)圖重點(diǎn)理解AOV網(wǎng)和拓?fù)渑判蚣捌渌惴ā?/p> 最后兩章集體說(shuō)明了查找和排序算法,查找教材上介紹了靜態(tài)查找表和哈希查找表,靜態(tài)查找表中介紹了順序查找、折半查找以及分塊查找。哈希法中,學(xué)習(xí)要點(diǎn)包括哈希函數(shù)的比較;解決地址沖突的線(xiàn)性探查法的運(yùn)用,平均探查次數(shù);解決地址沖突的二次哈希法的運(yùn)用。 排序是使用最頻繁的一類(lèi)算法,可分為內(nèi)部排序和外部排序。主要需要理解排序的基本概念,在算法上、需要掌握插入排序(包括直接插入排序算法、折半插入排序算法),交換排序(包括冒泡排序算法、快速排序遞歸算法),選擇排序(包括直接選擇排序算法、堆排序算法)等。 二、對(duì)各知識(shí)點(diǎn)的掌握情況 總體來(lái)看,對(duì)教材中的知識(shí)點(diǎn)理解較為完善,但各個(gè)章節(jié)均出現(xiàn)有個(gè)別知識(shí)點(diǎn)較為陌生的現(xiàn)象?,F(xiàn)將各個(gè)章節(jié)出現(xiàn)的知識(shí)點(diǎn)理解情況列舉如下。 第一章中我對(duì)數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu)的概念理解較為透徹,熟悉數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)。而對(duì)算法的時(shí)間、空間性能分析較為模糊,尤其是空間性能分析需要加強(qiáng)。 第二章,順序表的概念、生成算法理解較為清晰,并且熟悉簡(jiǎn)單順序查找和二分查找,對(duì)分塊查找較為含糊;排序問(wèn)題中,由于冒泡排序在大一C語(yǔ)言課上已經(jīng)學(xué)習(xí)過(guò),再來(lái)學(xué)習(xí)感覺(jué)很輕松。對(duì)插入排序和選擇排序理解良好,但是,在實(shí)際運(yùn)用中仍然出現(xiàn)明顯不熟練的現(xiàn)象。由于在歸并排序?qū)W習(xí)中感覺(jué)較吃力,現(xiàn)在對(duì)這種排序方法仍然非常模糊,所以需要花較多的時(shí)間來(lái)補(bǔ)習(xí)。此外串的模式匹配也是較難理解的一個(gè)地方。 鏈表這一章中,除對(duì)雙向循環(huán)鏈表這一知識(shí)點(diǎn)理解困難之外,其他的知識(shí)點(diǎn)像單鏈表的建立和基本算法等都較為熟悉。 接下來(lái)的有關(guān)堆棧以及隊(duì)列的知識(shí)點(diǎn)比較少,除有關(guān)算法較為特殊以外,其余算法都是先前學(xué)過(guò)的順序表和鏈表的知識(shí),加上思想上較為重視,因此這部分內(nèi)容是我對(duì)全書(shū)掌握最好的一部分。不足之處仍然表現(xiàn)在算法的性能分析上。 在學(xué)習(xí)第六章時(shí)感覺(jué)較為吃力的部分在于矩陣的應(yīng)用上,尤其對(duì)矩陣轉(zhuǎn)置算法的C語(yǔ)言描述不太理解。稀疏矩陣相加算法中,用三元組表實(shí)現(xiàn)比較容易理解,對(duì)十字鏈表進(jìn)行矩陣相加的方法較為陌生。 第七章是全書(shū)的重點(diǎn),卻也有一些內(nèi)容沒(méi)有完全理解。在第一節(jié)基本概念中,二叉樹(shù)的性質(zhì)容易懂卻很難記憶。對(duì)二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)和遍歷算法這部分內(nèi)容掌握較好,能夠熟練運(yùn)用,而對(duì)于二叉樹(shù)應(yīng)用中的哈弗曼樹(shù)卻比較陌生。 第八章內(nèi)容較少,牽涉到所學(xué)的隊(duì)列的有關(guān)內(nèi)容,總體來(lái)說(shuō)理解上沒(méi)有什么困難,問(wèn)題依舊出現(xiàn)在算法的性能分析上。 散列結(jié)構(gòu)這一章理解比較完善的知識(shí)點(diǎn)有:基本概念和存儲(chǔ)結(jié)構(gòu)。散列函數(shù)中直接定址法和除留余數(shù)法學(xué)得比較扎實(shí),對(duì)數(shù)字分析法等方法則感覺(jué)較為陌生。對(duì)兩種沖突處理的算法思想的理解良好,問(wèn)題在于用C語(yǔ)言描述上。 最后一章,圖及其應(yīng)用中,圖的定義、基本運(yùn)算如圖的生成等起初理解有困難,但隨著學(xué)習(xí)深入,對(duì)它的概念也逐步明朗起來(lái)。鄰接矩陣、鄰接表和逆鄰接表掌握較好,而對(duì)十字鏈表和鄰接多重表則較為陌生。感覺(jué)理解較為吃力的內(nèi)容還有圖的遍歷(包括深度和廣度優(yōu)先遍歷),最小生成樹(shù)問(wèn)題也是比較陌生的知識(shí)點(diǎn)。最短路徑和AOV網(wǎng)學(xué)習(xí)起來(lái)感覺(jué)比較輕松,而對(duì)于C語(yǔ)言描述卻又不大明白。 由于平時(shí)上機(jī)練習(xí)的少,對(duì)于教材中很多算法都掌握的不是很熟悉、不過(guò)這些都是可以彌補(bǔ)的,我會(huì)在剩下的時(shí)間中不斷練習(xí)書(shū)上給出的算法和練習(xí),正如教材上說(shuō)的,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),僅從書(shū)本上學(xué)習(xí)是不夠的,必須經(jīng)過(guò)大量的程序設(shè)計(jì)實(shí)踐,在實(shí)踐中體會(huì)構(gòu)造性思維方法,掌握數(shù)據(jù)組織與程序設(shè)計(jì)技術(shù)。 三、學(xué)習(xí)體會(huì): 多做實(shí)驗(yàn)!這個(gè)就沒(méi)有太多理由了,我一直覺(jué)得編程是一門(mén)熟練科學(xué),多編程,水平肯定會(huì)提高,最重要的是能夠養(yǎng)成一種感覺(jué),就是對(duì)程序?qū)λ惴ǖ拿舾?,為什么那些牛人看一個(gè)算法一下子就看懂了?而自己要看很久才能弄懂,而且弄懂了過(guò)了一陣子又忘記了?其實(shí)這個(gè)是因?yàn)榕H藗円郧翱吹某绦蚝芏?,編得也很多,所以他們有了那種感覺(jué),所以我覺(jué)得大家應(yīng)該多看程序,多寫(xiě)程序,培養(yǎng)自己的感覺(jué)。 復(fù)習(xí)和考試的技巧,我想大家應(yīng)該都有這樣的感覺(jué),就是覺(jué)得自己什么都掌握了,但是在考試的時(shí)候就是會(huì)犯暈,有時(shí)候一出考場(chǎng)就知道錯(cuò)在哪個(gè)了,然后考完以后一對(duì)答案,發(fā)現(xiàn)其實(shí)考得很簡(jiǎn)單,應(yīng)該都是自己會(huì)做的,這個(gè)就是與自己的復(fù)習(xí)和考試的技巧有關(guān)系了。 首先就是復(fù)習(xí),前面已經(jīng)說(shuō)過(guò)其實(shí)我們學(xué)的算法也就是幾十個(gè),那么我們的任務(wù)也就是理解這幾十個(gè)算法,復(fù)習(xí)也就是要加深你的理解。如何理解算法,然后理解到什么程度呢? 是能默出整個(gè)算法嗎?其實(shí)不是這樣的,數(shù)據(jù)結(jié)構(gòu)的考試有它的特點(diǎn),考過(guò)程考試了,大家應(yīng)該都發(fā)現(xiàn)數(shù)據(jù)結(jié)構(gòu)其實(shí)不要求你把整個(gè)算法背出來(lái),它注重考察你的理解,那么怎么考察呢?其實(shí)也就是兩種方式吧,一種就是用實(shí)例,就是給你一個(gè)例子,要你用某個(gè)算法運(yùn)行出結(jié)果,我想這個(gè)期末考試的時(shí)候仍然會(huì)有很多這樣的題目,比如排序那塊就很好出這樣的題目,要復(fù)習(xí)這種題目我覺(jué)得很簡(jiǎn)單,就是每個(gè)算法都自己用例子去實(shí)踐一下,以不變應(yīng)萬(wàn)變,我期中復(fù)習(xí)的時(shí)候就是這樣去做的,而且考試之前我就覺(jué)得那個(gè)并查集的題目就很有可能會(huì)考,于是就自己出了幾個(gè)例子,做了一下。另外一種考察方式就是算法填空和算法改錯(cuò),可能有一些同學(xué)覺(jué)得這種題目很難,其實(shí)我們首先可以確定這兩種題目肯定是與書(shū)上算法有關(guān)系的,只要理解了書(shū)上的算法就可以了,有人覺(jué)得看完書(shū)以后什么都懂了,而且要默也默得出來(lái),其實(shí)不是這樣的,算法改錯(cuò)和填空主要是考察的細(xì)微處,雖然你覺(jué)得你默得出來(lái),那是能夠默出算法的主體部分,很多細(xì)微的地方你就會(huì)很容易忽略。我想大家考過(guò)期中考以后應(yīng)該都有這種感覺(jué)吧?那要怎樣解決這種問(wèn)題呢? 我覺(jué)得有兩種方法,一種就是自己去編程實(shí)現(xiàn),這種方法比較有意義,還能夠提高編程水平,另外一種就是用實(shí)例分析算法的每句話(huà),我認(rèn)為這種方法是最有效的。 然后還有一種題目,就是最后的寫(xiě)算法的題目,我覺(jué)得這種題目還是很好解決的,只要是能夠自己做出作業(yè)的,基本上都會(huì)很容易做出來(lái),這也是為什么我前面覺(jué)得平時(shí)做作業(yè)應(yīng)該自己獨(dú)立思考的原因,同時(shí)做這種題目千萬(wàn)要小心,尤其是題目簡(jiǎn)單的時(shí)候,那肯定會(huì)有一些小地方要考慮清楚,一不小心就會(huì)被扣掉很多分,這樣很不值。 我覺(jué)得考試的時(shí)候沒(méi)有太多要講的,只要復(fù)習(xí)好了,考試的時(shí)候細(xì)心一點(diǎn)就可以了,然后就是做一個(gè)題目開(kāi)始就要盡量保證正確,如果覺(jué)得留在那里等后面做完了再來(lái)檢查,這樣錯(cuò)誤還是很有可能檢查不出來(lái),我期中考試的時(shí)候就基本上沒(méi)有檢查,因?yàn)槲易雒總€(gè)題目都是確保正確,用的時(shí)間也挺多的,然后也覺(jué)得沒(méi)有檢查的必要了。 三、對(duì)《數(shù)據(jù)結(jié)構(gòu)與算法》課程教學(xué)的建議 1、建議在上課過(guò)程中加大隨堂練習(xí)的分量,以便學(xué)生能當(dāng)堂消化課堂上學(xué)習(xí)的知識(shí),也便于及時(shí)了解學(xué)生對(duì)知識(shí)點(diǎn)的掌握情況,同時(shí)有助于學(xué)生保持良好的精神狀態(tài)。 2、建議在課時(shí)允許的情況下,增加習(xí)題課的分量,通過(guò)課堂的習(xí)題講解,加深對(duì)知識(shí)點(diǎn)的掌握,同時(shí)對(duì)各知識(shí)點(diǎn)的運(yùn)用有一個(gè)更為直觀(guān)和具體的認(rèn)識(shí)。 3、要更加重視實(shí)驗(yàn)的重要性。 以上便是我對(duì)《數(shù)據(jù)結(jié)構(gòu)與算法》這門(mén)課的學(xué)習(xí)總結(jié),我會(huì)抓緊時(shí)間將沒(méi)有吃透的知識(shí)點(diǎn)補(bǔ)齊。今后我仍然會(huì)繼續(xù)學(xué)習(xí),克服學(xué)習(xí)中遇到的難關(guān),在打牢基礎(chǔ)的前提下向更深入的層面邁進(jìn)!第三篇:“數(shù)據(jù)結(jié)構(gòu)”課程總結(jié)
第四篇:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)總結(jié)
第五篇:數(shù)據(jù)結(jié)構(gòu)與算法總結(jié)