數(shù)據(jù)結(jié)構(gòu)與算法課程總結(jié)
數(shù)據(jù)結(jié)構(gòu)與算法課程學(xué)習(xí)總結(jié)報(bào)告11計(jì)本一班許雪松1104013018
數(shù)據(jù)結(jié)構(gòu)與算法是計(jì)算機(jī)程序設(shè)計(jì)的重要理論技術(shù)基礎(chǔ),它不僅是計(jì)算機(jī)科學(xué)的核心課程,而且也已經(jīng)成為其他理工專(zhuān)業(yè)的熱門(mén)選修課?偟膩(lái)說(shuō)感觸還是比較深的,剛開(kāi)始上的時(shí)候還蠻簡(jiǎn)單的,越到后面感覺(jué)越難,算法也更復(fù)雜了,有時(shí)候甚至聽(tīng)不懂,老師上課時(shí)講的也蠻快的,所以只能靠課下下功夫了。下面是我對(duì)本學(xué)期學(xué)習(xí)這門(mén)課的總結(jié)。一、數(shù)據(jù)結(jié)構(gòu)與算法知識(shí)點(diǎn)
第一章的數(shù)據(jù)結(jié)構(gòu)和算法的引入,介紹了數(shù)據(jù)和數(shù)據(jù)類(lèi)型、數(shù)據(jù)結(jié)構(gòu)、算法描述工具、算法和算法評(píng)價(jià)四個(gè)方面的知識(shí)。
第二章具體地介紹了順序表的概念、基本運(yùn)算及其應(yīng)用;具\(yùn)算有:初始化表、求表長(zhǎng)、排序、元素的查找、插入及刪除等。元素查找方法有:簡(jiǎn)單順序查找、二分查找和分塊查找。排序方法有:直接插入排序、希爾排序、冒泡排序、快速排序、直接選擇排序及歸并排序等。最后介紹了順序串的概念,重點(diǎn)在于串的模式匹配。
第三章主要介紹的是線(xiàn)性邏輯結(jié)構(gòu)的數(shù)據(jù)在鏈接存儲(chǔ)方法下數(shù)據(jù)結(jié)構(gòu)鏈表的相關(guān)知識(shí)。主要是單鏈表、循環(huán)鏈表的數(shù)據(jù)類(lèi)型結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、基本運(yùn)算及其實(shí)現(xiàn)以及鏈表的相關(guān)應(yīng)用問(wèn)題,在此基礎(chǔ)上介紹了鏈串的相關(guān)知識(shí)。在應(yīng)用方面有多項(xiàng)式的相加問(wèn)題、歸并問(wèn)題、箱子排序問(wèn)題和鏈表在字符處理方面的應(yīng)用問(wèn)題等。本章未完全掌握的是循環(huán)鏈表的算法問(wèn)題和C的描述。
第四章介紹在兩種不同的存儲(chǔ)結(jié)構(gòu)下設(shè)計(jì)的堆棧,即順序棧和鏈棧的相關(guān)知識(shí),了解堆棧的相關(guān)應(yīng)用,掌握應(yīng)用堆棧來(lái)解決實(shí)際問(wèn)題的思想及方法。本章主要內(nèi)容是順序棧和鏈棧的概念、數(shù)據(jù)類(lèi)型、數(shù)據(jù)結(jié)構(gòu)定義和基本運(yùn)算算法及其性能分析。本章堆棧算法思想較為簡(jiǎn)單,所以能較好掌握。
第五章主要介紹順序存儲(chǔ)和鏈接存儲(chǔ)方法下的兩種隊(duì)列、順序(循環(huán))隊(duì)列和鏈隊(duì)列的數(shù)據(jù)結(jié)構(gòu)、基本運(yùn)算及其性能分析以及應(yīng)用。順序隊(duì)列(重點(diǎn)是循環(huán)隊(duì)列)和鏈隊(duì)列的概念、數(shù)據(jù)類(lèi)型描述、數(shù)據(jù)結(jié)構(gòu)和基本運(yùn)算算法及其性能分析等。本章同堆棧有點(diǎn)類(lèi)似,算法思想較為簡(jiǎn)單,所以能較好掌握;但難點(diǎn)重在循環(huán)隊(duì)列隊(duì)空、隊(duì)滿(mǎn)的判斷條件問(wèn)題。
第六章“特殊矩陣、廣義表及其應(yīng)用”將學(xué)習(xí)數(shù)組、稀疏矩陣和廣義表的基本概念,幾種特殊矩陣的存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算,在此基礎(chǔ)上學(xué)習(xí)特殊矩陣的計(jì)算算法與廣義表應(yīng)用等相關(guān)問(wèn)題。本章的重點(diǎn)是相關(guān)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算算法。掌握了特殊矩陣的壓縮存儲(chǔ)結(jié)構(gòu),在該存儲(chǔ)結(jié)構(gòu)下元素的定位方法,理解了稀疏矩陣的計(jì)算和廣義表的存儲(chǔ)結(jié)構(gòu)。
第七章二叉樹(shù)及其應(yīng)用。分為二叉樹(shù)的基本概念、二叉樹(shù)存儲(chǔ)結(jié)構(gòu)、二叉樹(shù)的遍歷算法、線(xiàn)索二叉樹(shù)、二叉樹(shù)的應(yīng)用(哈夫曼樹(shù)、二叉排序樹(shù)、堆和堆排序、基本算法);舅惴òǘ鏄(shù)的建立、遍歷、線(xiàn)索化等算法。在此基礎(chǔ)上,介紹二叉樹(shù)的一些應(yīng)用問(wèn)題,包括哈夫曼編碼問(wèn)題、(平衡)二叉排序樹(shù)問(wèn)題和堆排序問(wèn)題等。
第八章說(shuō)的是樹(shù)和森林,首先我們要知道樹(shù)與二叉樹(shù)是不同的概念。課本介紹了樹(shù)和森林的概念、遍歷和存儲(chǔ)結(jié)構(gòu),還有樹(shù)、森林和二叉樹(shù)的相互關(guān)系,樹(shù)或森林怎樣轉(zhuǎn)化成二叉樹(shù),二叉樹(shù)又如何轉(zhuǎn)換為樹(shù)和森林等算法。
第九章“散列結(jié)構(gòu)及其應(yīng)用”是邏輯結(jié)構(gòu)“集合型”的數(shù)據(jù)元素在散列存儲(chǔ)方法下的數(shù)據(jù)結(jié)構(gòu)及其應(yīng)用知識(shí)內(nèi)容。主要介紹散列函數(shù)的概念、散列結(jié)構(gòu)的概念、散列存儲(chǔ)結(jié)構(gòu)的概念---散列表、散列函數(shù)和散列表中解決沖突的處理方法---開(kāi)放定址法、鏈地址法以及散列表的基本算法及其性能分析。本章概念較為多,所以掌握不太好。第十章圖及其應(yīng)用。分為圖的概念、圖的存儲(chǔ)結(jié)構(gòu)及其基本算法、圖的遍歷及算法、有向圖的連通性和最小生成樹(shù)、圖的最小生成樹(shù)、非連通圖的生成森林算法、最短路徑、有向無(wú)環(huán)圖及其應(yīng)用。
二、對(duì)各知識(shí)點(diǎn)的掌握情況
我對(duì)各知識(shí)點(diǎn)的掌握情況總結(jié)如下:
對(duì)于第一章對(duì)數(shù)據(jù)結(jié)構(gòu)的概念理解頗深,大概是每次都要談?wù)摰桨伞?duì)算法的時(shí)間性能,空間性能基本了解。這些在后面的章節(jié)都會(huì)有運(yùn)用。第二章本章重點(diǎn)和難點(diǎn)在查找和排序問(wèn)題的算法思想上,6種排序方法的性能比較。本章未掌握的為希爾排序、快速排序、歸并排序的時(shí)間復(fù)雜度分析。第三章,對(duì)鏈表掌握還好,對(duì)其數(shù)據(jù)結(jié)構(gòu)進(jìn)行了分析,有循環(huán)鏈表,掌握的不是很好,對(duì)其中一些用法不熟練。第四章堆棧,本章堆棧算法思想較為簡(jiǎn)單,所以能較好掌握,但表達(dá)式計(jì)算問(wèn)題未掌握好的。第五章的循環(huán)隊(duì)列隊(duì)空、隊(duì)滿(mǎn)的判斷條件問(wèn)題掌握的不是很好。第六章的重點(diǎn)是相關(guān)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算算法。掌握了特殊矩陣的壓縮存儲(chǔ)結(jié)構(gòu),在該存儲(chǔ)結(jié)構(gòu)下元素的定位方法,理解了稀疏矩陣的計(jì)算和廣義表的存儲(chǔ)結(jié)構(gòu)。第七章對(duì)二叉樹(shù)掌握較好,其概念,存儲(chǔ),遍歷有很好的掌握。就是對(duì)二叉排序樹(shù)有點(diǎn)生疏,它的生成算法不是很會(huì)。第八章樹(shù)樹(shù)與二叉樹(shù)之間的轉(zhuǎn)換,森林與二叉樹(shù)的轉(zhuǎn)換算法思想基本掌握。第九章散列的一些知識(shí),沒(méi)有深入學(xué)習(xí),大概了解了散列存儲(chǔ)結(jié)構(gòu)散列表,散列函數(shù),沖突的處理方法。第十章了解了圖的逆鄰接表的存儲(chǔ)結(jié)構(gòu),關(guān)鍵路徑求解算法未能掌握好,不能靈活運(yùn)用圖的不同數(shù)據(jù)結(jié)構(gòu)和遍歷算法解決復(fù)雜的應(yīng)用問(wèn)題。三、學(xué)習(xí)體會(huì)
剛剛接觸這門(mén)課時(shí),看到課本中全是算法,當(dāng)時(shí)就暈了,因?yàn)槲业腃語(yǔ)言學(xué)的不好,我擔(dān)心會(huì)影響這門(mén)課的學(xué)習(xí),后來(lái)上課時(shí)老師說(shuō)學(xué)習(xí)這門(mén)課的基礎(chǔ)是C語(yǔ)言,所以我當(dāng)時(shí)就決定一定要好好補(bǔ)補(bǔ),爭(zhēng)取不被拖后腿,在學(xué)習(xí)這門(mén)課的期間,也遇到了不少問(wèn)。但是通過(guò)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法,讓我對(duì)程序有了新的認(rèn)識(shí),也有了更深的理解。同時(shí),也讓我認(rèn)識(shí)到,不管學(xué)習(xí)什么,概念是基礎(chǔ),所有的知識(shí)框架都是建立在基礎(chǔ)概念之上的,所以,第一遍看課本要將概念熟記于心,然后構(gòu)建知識(shí)框架。并且,對(duì)算法的學(xué)習(xí)是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的關(guān)鍵。在第二遍看課本的過(guò)程中,要注重對(duì)算法的掌握。對(duì)于一個(gè)算法,讀一遍可能能讀懂,但不可能完全領(lǐng)會(huì)其中的思想。掌握一個(gè)算法,并不是說(shuō)將算法背過(guò),而是掌握算法的思想。我們需要的是耐心。每看一遍就會(huì)有這一遍的收獲。讀懂算法之后,自己再默寫(xiě)算法,寫(xiě)到不會(huì)的地方,看看課本想想自己為什么沒(méi)有想到。對(duì)算法的應(yīng)用上,學(xué)習(xí)算法的目的是利用算法解決實(shí)際問(wèn)題。會(huì)寫(xiě)課本上已有的算法之后,可以借其思想進(jìn)行擴(kuò)展,逐步提高編程能力。
四、對(duì)課程教學(xué)的建議
1、課程課時(shí)較緊,課堂上的練習(xí)時(shí)間較少,講解的東西越多,頭腦有時(shí)就很混亂。2、感覺(jué)上課時(shí)的氣氛不是很好,雖然大部分人都在聽(tīng),可是效果不是很好。所以希望老師能在授課中間能穿插一些活躍課堂氛圍的話(huà)題,可以是大家都非常關(guān)心的一些內(nèi)容,這樣既讓大家能在思考之余有一個(gè)放松,也能夠提高學(xué)生的學(xué)習(xí)積極性和學(xué)習(xí)效率。
3、學(xué)習(xí)的積極性很重要,有時(shí)候我們花了很長(zhǎng)時(shí)間去寫(xiě)實(shí)驗(yàn)報(bào)告,也很認(rèn)真的去理解去掌握,可是最后實(shí)驗(yàn)報(bào)告可能就只得了一個(gè)C,抄的人反而得A,這樣的話(huà)很容易打擊學(xué)生的積極性,在后面的實(shí)驗(yàn)報(bào)告中沒(méi)動(dòng)力再去認(rèn)真寫(xiě)。所以希望老師能在這方面有所調(diào)整。4、雖然講課的時(shí)間很緊,但是還是希望老師能在講述知識(shí)點(diǎn)的時(shí)候能運(yùn)用實(shí)際的調(diào)試程序來(lái)給我們講解,這樣的話(huà)能讓我們對(duì)這些內(nèi)容有更深刻的印象和理解。
擴(kuò)展閱讀:數(shù)據(jù)結(jié)構(gòu)與算法課程學(xué)習(xí)總結(jié)報(bào)告
數(shù)據(jù)結(jié)構(gòu)與算法課程學(xué)習(xí)總結(jié)報(bào)告
計(jì)科系10級(jí)計(jì)本
一、數(shù)據(jù)結(jié)構(gòu)與算法知識(shí)點(diǎn)
《數(shù)據(jù)結(jié)構(gòu)與算法》這本書(shū)共有十一個(gè)章節(jié)。從第一章的數(shù)據(jù)結(jié)構(gòu)和算法的引入,介紹了數(shù)據(jù)和數(shù)據(jù)類(lèi)型、數(shù)據(jù)結(jié)構(gòu)、算法描述工具、算法和算法評(píng)價(jià)四個(gè)方面的知識(shí)。第二章則介紹了順序表及其應(yīng)用的相關(guān)知識(shí)。從順序表的基本概念開(kāi)始,分別介紹了順序表基本算法、順序表基本算法性能分析、順序表的應(yīng)用。順序表應(yīng)用又涉及多方面,有查找問(wèn)題、排序問(wèn)題、字符處理問(wèn)題。其中查找分簡(jiǎn)單順序查找,有序表的二分查找,分塊查找三種。排序中分插入排序(直接插入排序、希爾排序)、交換排序(冒泡排序、快速排序)、選擇排序(直接選擇排序)、歸并排序。第三章鏈表及其應(yīng)用,分為鏈表的基本概念、單鏈表的數(shù)據(jù)結(jié)構(gòu)、單鏈表的基本算法、循環(huán)鏈表、鏈表的應(yīng)用。第四章堆棧及其應(yīng)用,分為堆棧堆的基本概念、順序棧及其基本算法、鏈棧及其基本算法、堆棧的應(yīng)用。第五章隊(duì)列及其應(yīng)用,分為隊(duì)列的基本概念、順序隊(duì)列及其基本算法、鏈隊(duì)列及其基本算法、基數(shù)排序問(wèn)題。第六章特殊矩陣和廣義表及其應(yīng)用,分為數(shù)組與矩陣,特殊矩陣的壓縮存儲(chǔ)、矩陣的應(yīng)用實(shí)例、廣義表。第七章二叉樹(shù)及其應(yīng)用。分為二叉樹(shù)的基本概念、二叉樹(shù)存儲(chǔ)結(jié)構(gòu)、二叉樹(shù)的遍歷算法、線(xiàn)索二叉樹(shù)、二叉樹(shù)的應(yīng)用(基本算法、哈夫曼樹(shù)、二叉排序樹(shù)、堆和堆排序)。第八章樹(shù)和森林及其應(yīng)用。分為樹(shù)和森林的基本概念,樹(shù)的存儲(chǔ)結(jié)構(gòu)、樹(shù)的基本算法及性能分析、樹(shù)的應(yīng)用(B樹(shù))。第九章散列結(jié)構(gòu)及其應(yīng)用。分為散列結(jié)構(gòu)的概念等。著重學(xué)習(xí)了散列表、散列函數(shù)、沖突處理方法(開(kāi)放定址法和鏈地址法)。第九章圖及其應(yīng)用。分為圖的概念、圖的存儲(chǔ)結(jié)構(gòu)及其基本算法、圖的遍歷及算法、有向圖的連通性和最小生成樹(shù)、圖的最小生成樹(shù)、非連通圖的生成森林算法、最短路徑、有向無(wú)環(huán)圖及其應(yīng)用。第十一章算法性能分析和算法設(shè)計(jì)方法簡(jiǎn)介。
二、對(duì)各知識(shí)點(diǎn)的掌握情況
綜合以上知識(shí)點(diǎn),我對(duì)自我學(xué)習(xí)成果作如下總結(jié):對(duì)于第一章對(duì)數(shù)據(jù)結(jié)構(gòu)的概念理解頗深,大概是每次都要談?wù)摰桨。?duì)算法的時(shí)間性能,空間性能基本了解。這些在后面的章節(jié)都會(huì)有運(yùn)用。第二章順序表較為清晰。如何去建一個(gè)順序表,順序表的一些基本算法都可以很好運(yùn)用。在順序表應(yīng)用中對(duì)二分查找映象深刻。對(duì)于排序能了解其算法思想。對(duì)字符串的處理應(yīng)用的較少,沒(méi)有深入了解。第三章鏈表的知識(shí),由于鏈表在上學(xué)期就有所接觸,老師也強(qiáng)調(diào)其作用,對(duì)鏈表掌握還好,但在第三章中又學(xué)習(xí)到了新的內(nèi)容,對(duì)其數(shù)據(jù)結(jié)構(gòu)進(jìn)行了分析,增加了循環(huán)鏈表,對(duì)知識(shí)進(jìn)行補(bǔ)充。第四章堆棧,堆棧是一個(gè)運(yùn)算受限的線(xiàn)性表,可對(duì)比順序表的學(xué)習(xí),不同的是還有鏈棧,這部分感覺(jué)是全書(shū)最容易的部分了。第五章隊(duì)列是接著堆棧之后的又一個(gè)運(yùn)算受限制的線(xiàn)性表,感覺(jué)和堆棧一樣簡(jiǎn)單。第六章矩陣和廣義表是我的弱項(xiàng),在這部分的學(xué)習(xí)過(guò)程中沒(méi)有用心學(xué),現(xiàn)在正在深入研究。接下來(lái)的第七章第八章是全書(shū)的重點(diǎn),特別是第七章二叉樹(shù),所以學(xué)習(xí)的重心也偏向這兩章。對(duì)二叉樹(shù)掌握較好,其概念,存儲(chǔ),遍歷有很好的掌握。就是對(duì)二叉排序樹(shù)有點(diǎn)生疏,它的生成算法不是很會(huì)。第八章樹(shù)和森林,樹(shù)與二叉樹(shù)之間的轉(zhuǎn)換,森林與二叉樹(shù)的轉(zhuǎn)換算法思想基本掌握。第九章散列的一些知識(shí),沒(méi)有深入學(xué)習(xí),大概了解了散列存儲(chǔ)結(jié)構(gòu)散列表,散列函數(shù),沖突的處理方法。第十章感覺(jué)是很難的一章,知識(shí)點(diǎn)多,能夠畫(huà)有向圖和無(wú)向圖的鄰接矩陣,鄰接表。圖的深度遍歷和廣度遍歷,但是其算法只是能讀懂。三、學(xué)習(xí)體會(huì)
開(kāi)學(xué)伊始,聽(tīng)說(shuō)要學(xué)數(shù)據(jù)結(jié)構(gòu)與算法,而且考試通過(guò)率極低,就帶著這樣恐懼的心理開(kāi)始學(xué)習(xí)了。通過(guò)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法讓我對(duì)程序有了新的認(rè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)題,通過(guò)學(xué)習(xí)我了解了相關(guān)領(lǐng)域的基礎(chǔ)知識(shí)和基本應(yīng)用。知道了學(xué)習(xí)一種數(shù)據(jù)結(jié)構(gòu)必須掌握該數(shù)據(jù)結(jié)構(gòu)的定義,其包括邏輯結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)和基本算法還有基本應(yīng)用知識(shí)。對(duì)于一個(gè)應(yīng)用程序,不是它能運(yùn)行,能顯示結(jié)果就行了,還要考慮它的各方面的性能,時(shí)間性能,空間性能。以此節(jié)約空間和時(shí)間。給定一個(gè)程序首先要分析其應(yīng)有的數(shù)據(jù)結(jié)構(gòu)。怎么存儲(chǔ),怎么性能會(huì)比較好。“數(shù)據(jù)結(jié)構(gòu)與算法”是一門(mén)很有用的科目,可是也是很令人頭疼的學(xué)科,這也鍛煉了我們迎難而上的毅力。當(dāng)然學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法是建立在學(xué)習(xí)好計(jì)算機(jī)語(yǔ)言的基礎(chǔ)上的,學(xué)習(xí)編程是枯燥無(wú)味的,學(xué)據(jù)結(jié)構(gòu)給我?guī)?lái)更多的是思考的東西。
課程結(jié)束我總結(jié)了學(xué)習(xí)過(guò)程中遇到的困難,有時(shí)寫(xiě)不出合條件的算法,在寫(xiě)實(shí)驗(yàn)報(bào)告時(shí),有時(shí)就是將書(shū)上的源程序搬上去,對(duì)程序進(jìn)行一些修改。針對(duì)這一情況我會(huì)慢慢改正。多加思考。
四、對(duì)課程教學(xué)的建議
1、課程課時(shí)較緊,課堂上的練習(xí)時(shí)間較少,講解的東西越多,頭腦有時(shí)就很混亂。2、長(zhǎng)期的ppt教學(xué),會(huì)使產(chǎn)生疲勞,稍不留神,思維開(kāi)了小差,就跟不上了?梢赃m當(dāng)結(jié)合ppt和例題講解。。通過(guò)課堂的習(xí)題講解,加深對(duì)知識(shí)點(diǎn)的掌握,同時(shí)對(duì)各知識(shí)點(diǎn)的運(yùn)用有一個(gè)更為直觀和具體的認(rèn)識(shí)。
友情提示:本文中關(guān)于《數(shù)據(jù)結(jié)構(gòu)與算法課程總結(jié)》給出的范例僅供您參考拓展思維使用,數(shù)據(jù)結(jié)構(gòu)與算法課程總結(jié):該篇文章建議您自主創(chuàng)作。
來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。