通過總結(jié),我們可以發(fā)現(xiàn)自身的優(yōu)勢(shì)和不足,為今后的發(fā)展提供指引。寫總結(jié)時(shí)要注意使用正確的語(yǔ)言風(fēng)格和詞匯,避免模糊、不準(zhǔn)確或夸大的表達(dá)。為了幫助大家更好地寫好總結(jié),以下是一些范文供參考。
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇一
算法與數(shù)據(jù)結(jié)構(gòu)這一門課程,就是描述了數(shù)據(jù)的邏輯結(jié)構(gòu),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),以及數(shù)據(jù)的運(yùn)算集合在計(jì)算機(jī)中的運(yùn)用和體現(xiàn)。數(shù)據(jù)的邏輯結(jié)構(gòu)就是數(shù)據(jù)與數(shù)據(jù)之間的邏輯結(jié)構(gòu);數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)就包含了順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)、索引存儲(chǔ)和散列存儲(chǔ)。在這學(xué)期當(dāng)中,老師給我們主要講了順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。最后數(shù)據(jù)的運(yùn)算集合就是對(duì)于一批數(shù)據(jù),數(shù)據(jù)的運(yùn)算是定義在數(shù)據(jù)的邏輯結(jié)構(gòu)之上的,而運(yùn)算的具體實(shí)現(xiàn)依賴于數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。
通過這學(xué)期的學(xué)習(xí),讓我在去年c語(yǔ)言的基礎(chǔ)上對(duì)數(shù)據(jù)與數(shù)據(jù)之間的邏輯關(guān)系有了更深的理解和認(rèn)識(shí)。以前在學(xué)matlab這一課程的時(shí)候,我們?nèi)绻獙?shí)現(xiàn)兩個(gè)數(shù)的加減乘除,或者一系列復(fù)雜的數(shù)據(jù)運(yùn)算,就直接的調(diào)用函數(shù)就行,套用規(guī)則符號(hào)和運(yùn)算格式,就能立馬知道結(jié)果。在學(xué)習(xí)c語(yǔ)言這一課程時(shí),我們逐漸開始了解函數(shù)的調(diào)用的原理,利用子函數(shù)中包含的運(yùn)算規(guī)則,從而實(shí)現(xiàn)函數(shù)的功能。現(xiàn)今學(xué)習(xí)了算法,讓我更深層次的知道了通過順序表、指針、遞歸,能讓數(shù)據(jù)算法的實(shí)現(xiàn)更加的簡(jiǎn)潔,明了,更易于理解。摒棄了數(shù)據(jù)的冗雜性。
在本書第二章中,主要介紹了順序表的實(shí)現(xiàn)以及運(yùn)用。順序表中我認(rèn)為最重要的是一個(gè)實(shí)型數(shù)組,和順序表的表長(zhǎng),不論是在一個(gè)數(shù)據(jù)的倒置、插入、刪除以及數(shù)據(jù)的排序過程中,都能將數(shù)據(jù)依次存入數(shù)組當(dāng)中,利用數(shù)組下標(biāo)之間的關(guān)系,就能實(shí)現(xiàn)數(shù)據(jù)的一系列操作了。在存儲(chǔ)棧中,給我留下最深刻的映像就是“先進(jìn)后出”,由于它特殊的存儲(chǔ)特性,所以在括號(hào)的匹配,算術(shù)表達(dá)式中被大量應(yīng)用。在存儲(chǔ)隊(duì)列之中,數(shù)據(jù)的刪除和存儲(chǔ)分別在表的兩端進(jìn)行操作,所以存儲(chǔ)數(shù)據(jù)很方便。為節(jié)省隊(duì)列浪費(fèi)閑置空間的這一大缺點(diǎn),所以引入了循環(huán)隊(duì)列這一概念,很好用。
在第三章中,主要講的是鏈?zhǔn)酱鎯?chǔ)特性。它最突出的優(yōu)點(diǎn)就是可以選擇連續(xù)或者不連續(xù)的存儲(chǔ)空間都行。所以,不管是數(shù)據(jù)在插入或者刪除一個(gè)數(shù)據(jù)時(shí),會(huì)很方便,不會(huì)像順序表那樣,要移動(dòng)數(shù)組中的諸多元素。所以鏈表利用指針能很方便的進(jìn)行刪除或者插入操作。而鏈?zhǔn)皆跅:完?duì)列的基礎(chǔ)上,也有了多方面的應(yīng)用,所以在這些方面有了更多的應(yīng)用。
第四章字符串中,基本的數(shù)組內(nèi)部元素的排序和字符串的匹配大部分代碼自己還是能夠理解,能夠看懂,如果真的要將所學(xué)的大量運(yùn)用于實(shí)踐的話,那就要多花些功夫和時(shí)間了。在對(duì)稱矩陣的壓縮,三角矩陣的壓縮,稀疏矩陣在存儲(chǔ)中能夠合理的進(jìn)行,能大大提高空間的開支。
在第五章遞歸當(dāng)中,就是在函數(shù)的定義之中出現(xiàn)了自己本身的調(diào)用,稱之為遞歸。而遞歸設(shè)計(jì)出來的程序,具有結(jié)構(gòu)清晰,可讀性強(qiáng),便于理解等優(yōu)點(diǎn)。但是由于遞歸在執(zhí)行的過程中,伴隨著函數(shù)自身的多次調(diào)用,因而執(zhí)行效率較低。如果要在追求執(zhí)行效率的情況下,往往采用非遞歸方式實(shí)現(xiàn)問題的算法程序。
在第六章數(shù)型結(jié)構(gòu)當(dāng)中,這是區(qū)別于線性結(jié)構(gòu)的另一大類數(shù)據(jù)結(jié)構(gòu),它具有分支性和層次性。它是數(shù)據(jù)表示,信息組織和程序設(shè)計(jì)的基礎(chǔ)和工具。在本章中,映像深刻的是樹的存儲(chǔ)結(jié)構(gòu)。有雙親表示法,孩子表示法,以及孩子兄弟表示法。在表示怎樣存儲(chǔ)數(shù)據(jù)之后,接著要從數(shù)型結(jié)構(gòu)中將數(shù)據(jù)讀取出來,于是,有了樹的遍歷,在遍歷當(dāng)中,又分為前序、中序和后序遍歷,這三種遍歷各有各的特點(diǎn)。
在第七章中,說到了樹的擴(kuò)展---二叉樹。二叉樹不同一般的樹型結(jié)構(gòu)的另一種重要的非線性結(jié)構(gòu),它是處理兩種不同的數(shù)據(jù)結(jié)構(gòu),許多涉及樹的算法采用二叉樹表示和處理更加便捷和方便。其他的也是和一般的二叉樹差不多。還多了一個(gè)樹、森林和二叉樹之間的轉(zhuǎn)換。
第八章的圍繞著圖來展開,它是一種復(fù)雜的非線性結(jié)構(gòu),在人工智能、網(wǎng)絡(luò)工程、數(shù)學(xué)、并行計(jì)算和工業(yè)設(shè)計(jì)有著廣泛的應(yīng)用。圖最重要的由一個(gè)非空的頂點(diǎn)集合和一個(gè)描述頂點(diǎn)之間的多對(duì)多關(guān)系的邊集合組成的一種數(shù)據(jù)結(jié)構(gòu)。圖的存儲(chǔ)室通過鄰接矩陣?yán)洗鎯?chǔ)圖的信息。而圖的讀取是通過深度優(yōu)先遍歷和廣度優(yōu)先遍歷實(shí)現(xiàn)。生成最小生成樹有prim算法和kruskal算法,相對(duì)于這兩種算法,后一種算法要更加易于理解。
在考試的時(shí)候,我以為老師只會(huì)出題作業(yè)部分。然后書中有一小部分就沒看,但是題中出現(xiàn)了一個(gè)二叉樹轉(zhuǎn)換為森林的時(shí)候,我有印象,但就是沒思路想法了,就沒做。從中我真的理解了老師說的,考試不代表學(xué)習(xí)的結(jié)束。或者你現(xiàn)在看的內(nèi)容在生活中學(xué)習(xí)中暫時(shí)沒有太大的作用,但是到了某一特定的環(huán)境條件下,總會(huì)有作用。所以,學(xué)習(xí)是一個(gè)積累的過程,不懈怠,踏實(shí)的走下去,你才會(huì)有所收獲。
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇二
本章作為全書的導(dǎo)引,全面介紹了相關(guān)概念,如數(shù)據(jù)、數(shù)據(jù)元素、數(shù)據(jù)類型以及數(shù)據(jù)結(jié)構(gòu)的定義。其中,數(shù)據(jù)結(jié)構(gòu)包括邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和運(yùn)算集合。邏輯結(jié)構(gòu)分為四類:集合型、線性、樹形和圖形結(jié)構(gòu);數(shù)據(jù)元素的存儲(chǔ)結(jié)構(gòu)分為:順序存儲(chǔ)、鏈接存儲(chǔ)、索引存儲(chǔ)和散列存儲(chǔ)四類;最后介紹算法的時(shí)間性能分析以及算法的空間性能分析。
一、主要介紹順序表的定義,基本算法和時(shí)間性能的分析;
二、主要介紹一些簡(jiǎn)單的查找算法和排序算法。
本章主要介紹的是線性邏輯結(jié)構(gòu)的數(shù)據(jù)在鏈接存儲(chǔ)下的數(shù)據(jù)結(jié)構(gòu)鏈表的相關(guān)知識(shí),本章主要介紹單鏈表、循環(huán)鏈表的數(shù)據(jù)類型的定義及一些對(duì)數(shù)據(jù)的操作的算法和時(shí)間性能的分析。以及鏈表的應(yīng)用主要有多項(xiàng)式相加,歸并問題、箱子排序問題等方面。
本章介紹了兩種不同的存儲(chǔ)結(jié)構(gòu)下設(shè)計(jì)的堆棧,即順序棧和鏈棧;分別對(duì)順序棧和鏈棧的數(shù)據(jù)類型定義和對(duì)數(shù)據(jù)的操作比若說取棧頂元素和元素入棧等算法。最后介紹了堆棧的應(yīng)用如:漢諾塔和火車車廂重排問題。
樹和森林的概念和性質(zhì)、數(shù)據(jù)結(jié)構(gòu)、樹的基本算法及性能分析,樹與二叉樹之間的轉(zhuǎn)換和森林與二叉樹之間的轉(zhuǎn)換及其相應(yīng)的算法。其次還有樹和森林的遍歷和樹的存儲(chǔ)結(jié)構(gòu),包括雙親表示法,孩子表示法,孩子兄弟表示法。
本章主要介紹圖的定義和基礎(chǔ)知識(shí),圖的四種存儲(chǔ)結(jié)構(gòu),圖的基本算法以及圖的典型應(yīng)用問題如:最小生成樹,最短路徑,拓?fù)渑判蚝完P(guān)鍵路徑等。
1、建議在上課過程中加大隨堂練習(xí)的分量,以便學(xué)生能當(dāng)堂消化課堂上學(xué)習(xí)的知識(shí),也便于及時(shí)了解學(xué)生對(duì)知識(shí)點(diǎn)的掌握情況,同時(shí)有助于學(xué)生保持良好的精神狀態(tài)。
2、建議在課時(shí)允許的情況下,增加習(xí)題課的分量,通過課堂的習(xí)題講解,加深對(duì)知識(shí)點(diǎn)的掌握,同時(shí)對(duì)各知識(shí)點(diǎn)的運(yùn)用有一個(gè)更為直觀和具體的認(rèn)識(shí)。
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇三
通過這次的課程設(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í)是遠(yuǎn)遠(yuǎn)不夠的,需要把知識(shí)運(yùn)用到實(shí)踐中去,能力才能得到提高。由于剛開始對(duì)圖的總體結(jié)構(gòu)不熟悉,認(rèn)真查找了一些資料,才對(duì)這次課程設(shè)計(jì)有了初步的了解。
在我們進(jìn)行課程設(shè)計(jì)時(shí),雖然在大體上算法是正確的,但時(shí)常會(huì)出現(xiàn)一些小問題,使我們不得不花一些時(shí)間來查找、修改錯(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é)完了,但是我們懂得的也只是毛皮,更多專業(yè)的知識(shí)還等我們?nèi)W(xué)習(xí),從現(xiàn)在開始我們就得有精神上的緊迫感,在科技日新月異的今天,計(jì)算機(jī)人才太多了,我們只有讓自己學(xué)習(xí)更精,視野更廣,思維更高,理想更遠(yuǎn),用知識(shí)來武裝自己,用能力來證明自己,這樣,我們才能在it行業(yè)中做出貢獻(xiàn),實(shí)現(xiàn)自身的價(jià)值。
計(jì)算機(jī)科學(xué)與技術(shù)2012.12.20。
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇四
計(jì)算機(jī)技術(shù)已成為現(xiàn)代化發(fā)展的重要支柱和標(biāo)志,并逐步滲透到人類生活的各個(gè)領(lǐng)域。隨著計(jì)算機(jī)硬件的發(fā)展,對(duì)計(jì)算機(jī)軟件的發(fā)展也提出了越來越高的要求。由于軟件的核心是算法,而算法實(shí)際上是對(duì)加工數(shù)據(jù)過程的描述,所以研究數(shù)據(jù)結(jié)構(gòu)對(duì)提高編程能力和設(shè)計(jì)高性能的算法是至關(guān)重要的。
非數(shù)值計(jì)算問題的數(shù)學(xué)模型不再是傳統(tǒng)的數(shù)學(xué)方程問題,而是諸如表、樹、圖之類的數(shù)據(jù)結(jié)構(gòu)。因此,簡(jiǎn)單地說,數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計(jì)算的程序設(shè)計(jì)問題的學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和算法。
一、教學(xué)目的與要求---了解數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu);
教學(xué)要求在每章教學(xué)內(nèi)容給出,大體上為三個(gè)層次:了解、掌握和熟練掌握。他們的含義大致為:了解是正確理解概念,掌握是學(xué)會(huì)所學(xué)知識(shí),熟練掌握就是運(yùn)用所學(xué)知識(shí)解決實(shí)際問題。
教學(xué)目的為:了解算法對(duì)于程序設(shè)計(jì)的重要性;學(xué)習(xí)掌握基本數(shù)據(jù)結(jié)構(gòu)的描述與實(shí)現(xiàn)方法,熟練掌握典型數(shù)據(jù)結(jié)構(gòu)及其應(yīng)用算法的設(shè)計(jì)。了解算法分析方法。
二、教學(xué)重點(diǎn)與難點(diǎn)--數(shù)據(jù)結(jié)構(gòu)中基本概念和術(shù)語(yǔ),算法描述和分析方法。
1、鏈表插入、刪除運(yùn)算的算法。算法時(shí)間復(fù)雜度。
2、后綴表達(dá)式的算法,數(shù)制的換算。
利用本章的基本知識(shí)設(shè)計(jì)相關(guān)的應(yīng)用問題。
3、循環(huán)隊(duì)列的特點(diǎn)及判斷溢出的條件。
利用隊(duì)列的特點(diǎn)設(shè)計(jì)相關(guān)的應(yīng)用問題。
4、串的模式匹配運(yùn)算算法。
5、二叉樹遍歷算法的設(shè)計(jì)。
利用二叉樹遍歷算法,解決簡(jiǎn)單應(yīng)用問題哈夫曼樹的算法。
6、圖的遍歷。
最小生成樹。
最短路徑。
7、二叉排序樹查找。
平衡樹二叉樹。
8、堆排序。
快速排序歸并排序。
四、教學(xué)內(nèi)容、目標(biāo)與學(xué)時(shí)分配。
教學(xué)內(nèi)容教學(xué)目標(biāo)課時(shí)分配。
1、緒論。
邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)。
算法和算法分析。
2、線性表。
線性表的定義與運(yùn)算。
線性表的順序存儲(chǔ)。
線性表的鏈?zhǔn)酱鎯?chǔ)。
3、棧。
棧的定義與運(yùn)算。
棧存儲(chǔ)和實(shí)現(xiàn)。
棧的應(yīng)用舉例。
4、隊(duì)列。
隊(duì)列的定義與基本運(yùn)算。
隊(duì)列的存儲(chǔ)與實(shí)現(xiàn)。
隊(duì)列的應(yīng)用舉例。
5、串。
串的定義與基本運(yùn)算。
串的表示與實(shí)現(xiàn)。
串的基本運(yùn)算。
6、樹和二叉樹。
樹的定義和術(shù)語(yǔ)。
二叉樹樹的基本概念和術(shù)語(yǔ)遍歷二叉數(shù)和線索二叉樹。
二叉樹的轉(zhuǎn)換。
二叉樹的應(yīng)用。
哈夫曼樹及其應(yīng)用。
7、圖。
圖的定義和術(shù)語(yǔ)。
圖的存儲(chǔ)結(jié)構(gòu)。
圖的遍歷算法。
圖的連通性。
8、查找。
查找的基本概念與靜態(tài)查找動(dòng)態(tài)查找。
哈希表。
了解。
了解。
掌握。
熟練掌握順序表存儲(chǔ)地址的計(jì)算。
掌握單鏈表的結(jié)構(gòu)特點(diǎn)和基本運(yùn)算。
掌握雙鏈表的結(jié)構(gòu)特點(diǎn)和基本運(yùn)算。
掌握棧的定義與運(yùn)算。
掌握棧的存儲(chǔ)與實(shí)現(xiàn)。
熟練掌握棧的各種實(shí)際應(yīng)用。
掌握隊(duì)列的定義與基本運(yùn)算。
熟練掌握隊(duì)列的存儲(chǔ)與實(shí)現(xiàn)。
掌握循環(huán)隊(duì)列的特征和基本運(yùn)算。
了解串的邏輯結(jié)構(gòu)。
掌握串的存儲(chǔ)結(jié)構(gòu)。
熟練掌握串的基本運(yùn)算。
了解。
了解二叉樹。
熟練掌握二叉樹定義和存儲(chǔ)結(jié)構(gòu)。
了解二叉樹的遍歷算法。
掌握。
掌握哈夫曼的建立及編碼。
了解。
了解。
熟練掌握。
熟練掌握。
了解。
熟練掌握。
了解哈希表與哈希方法。
4學(xué)時(shí)。
1學(xué)時(shí)。
1學(xué)時(shí)。
2學(xué)時(shí)。
8學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
4學(xué)時(shí)。
8學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
4學(xué)時(shí)。
6學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
6學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
12學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
8學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
8學(xué)時(shí)。
4學(xué)時(shí)。
2學(xué)時(shí)。
2學(xué)時(shí)。
9、排序。
12學(xué)時(shí)插入排序。
熟練掌握基本思想。
3學(xué)時(shí)快速排序。
了解各種內(nèi)部排序方法和特點(diǎn)。
3學(xué)時(shí)選擇排序。
掌握。
2學(xué)時(shí)各種排序方法比較。
掌握。
2學(xué)時(shí)。
實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)?zāi)繕?biāo)課時(shí)分配算法編程實(shí)驗(yàn):
1、用指針方式編寫程序復(fù)習(xí)c(c++)語(yǔ)言指針、結(jié)構(gòu)體等的用法。
2、對(duì)單鏈表進(jìn)行遍歷。
鏈表的描述與操作實(shí)現(xiàn)。
3、棧及其操作。
描述方法及操作。
4、編寫串子系統(tǒng)1串的特點(diǎn)及順序定長(zhǎng)存儲(chǔ)、操作、查找。
5、編寫串子系統(tǒng)2串的特點(diǎn)及順序定長(zhǎng)存儲(chǔ)、操作、查找。
6、編寫樹子系統(tǒng)1二叉樹的特點(diǎn)及存儲(chǔ)方式、創(chuàng)建、顯示、遍歷等。
7、編寫樹子系統(tǒng)2二叉樹的特點(diǎn)及存儲(chǔ)方式、創(chuàng)建、顯示、遍歷等。
8、圖子系統(tǒng)。
圖的鄰接矩陣的存儲(chǔ)、遍歷、廣度/深度優(yōu)先搜索。
9、查找子系統(tǒng)。
理解查找基本算法、平均查找長(zhǎng)度、靜態(tài)、動(dòng)態(tài)查找等。
五、考試范圍與題型。
1、考試范圍與分?jǐn)?shù)比例。
1)緒論。
12%2)線性表。
17%3)棧。
7%4)隊(duì)列。
6%5)串。
4%6)樹和二叉樹。
14%7)圖。
15%8)查找。
4%9)排序。
21%。
2、考試題型與分?jǐn)?shù)比例。
1)名詞解釋。
18%2)判斷對(duì)錯(cuò)。
16%3)填空。
16%4)單項(xiàng)選擇。
18%5)應(yīng)用。
32%。
六、教材與參考資料。
1、教材:實(shí)用數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)(譚浩強(qiáng))中國(guó)鐵道出版社。
2、參考資料:數(shù)據(jù)結(jié)構(gòu)(嚴(yán)蔚敏)清華大學(xué)出版社。
(撰寫人:
審核人:2學(xué)時(shí)2學(xué)時(shí)2學(xué)時(shí)2學(xué)時(shí)2學(xué)時(shí)2學(xué)時(shí)2學(xué)時(shí)2學(xué)時(shí)2學(xué)時(shí))。
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇五
數(shù)據(jù)結(jié)構(gòu)與算法是計(jì)算機(jī)程序設(shè)計(jì)的重要理論技術(shù)基礎(chǔ),它不僅是計(jì)算機(jī)科學(xué)的核心課程,而且也已經(jīng)成為其他理工專業(yè)的熱門選修課。隨著高級(jí)語(yǔ)言的發(fā)展,數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)的研究和應(yīng)用中已展現(xiàn)出強(qiáng)大的生命力,它兼顧了諸多高級(jí)語(yǔ)言的特點(diǎn),是一種典型的結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,它處理能力強(qiáng),使用靈活方便,應(yīng)用面廣,具有良好的可移植性。通過學(xué)習(xí),先報(bào)告如下:
第一章的內(nèi)容主要包括有關(guān)數(shù)據(jù)、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、算法、算法實(shí)現(xiàn)、c語(yǔ)言使用中相關(guān)問題和算法分析等基本概念和相關(guān)知識(shí)。其中重點(diǎn)式數(shù)據(jù)、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、算法等概念;c語(yǔ)言中則介紹了指針、結(jié)構(gòu)變量、函數(shù)、遞歸、動(dòng)態(tài)存儲(chǔ)分配、文件操作、程序測(cè)試與調(diào)試問題等內(nèi)容。
第二章主要介紹的是線性邏輯結(jié)構(gòu)的數(shù)據(jù)在順序存儲(chǔ)方法下的數(shù)據(jù)結(jié)構(gòu)順序表(包括順序串)的概念、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、基本運(yùn)算及其相關(guān)應(yīng)用。其中重點(diǎn)一是順序表的定義、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、基本運(yùn)算和性能分析等概念和相關(guān)知識(shí)。二是順序表的應(yīng)用、包括查找問題(簡(jiǎn)單順序查找、二分查找、分塊查找)、排序問題(直接插入排序、希爾排序、冒泡排序、快速排序、直接選擇排序、歸并排序)、字符處理問題(模式匹配)等內(nèi)容。本章重點(diǎn)和難點(diǎn)在查找和排序問題的算法思想上,6種排序方法的性能比較。
第三章主要介紹的是線性邏輯結(jié)構(gòu)的數(shù)據(jù)在鏈接存儲(chǔ)方法下數(shù)據(jù)結(jié)構(gòu)鏈表的相關(guān)知識(shí)。主要是單鏈表、循環(huán)鏈表的數(shù)據(jù)類型結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、基本運(yùn)算及其實(shí)現(xiàn)以及鏈表的相關(guān)應(yīng)用問題,在此基礎(chǔ)上介紹了鏈串的相關(guān)知識(shí)。在應(yīng)用方面有多項(xiàng)式的相加問題、歸并問題、箱子排序問題和鏈表在字符處理方面的應(yīng)用問題等。本章未完全掌握的是循環(huán)鏈表的算法問題和c的描述。
第四章介紹在兩種不同的存儲(chǔ)結(jié)構(gòu)下設(shè)計(jì)的堆棧,即順序棧和鏈棧的相關(guān)知識(shí),了解堆棧的相關(guān)應(yīng)用,掌握應(yīng)用堆棧來解決實(shí)際問題的思想及方法。本章主要內(nèi)容是順序棧和鏈棧的概念、數(shù)據(jù)類型、數(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ù)類型描述、數(shù)據(jù)結(jié)構(gòu)和基本運(yùn)算算法及其性能分析等。本章同堆棧有點(diǎn)類似,算法思想較為簡(jiǎn)單,所以能較好掌握;但難點(diǎn)重在循環(huán)隊(duì)列隊(duì)空、隊(duì)滿的判斷條件問題。第六章“特殊矩陣、廣義表及其應(yīng)用”將學(xué)習(xí)數(shù)組、稀疏矩陣和廣義表的基本概念,幾種特殊矩陣的存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算,在此基礎(chǔ)上學(xué)習(xí)特殊矩陣的計(jì)算算法與廣義表應(yīng)用等相關(guā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)。
第七章“二叉樹及其應(yīng)用”的知識(shí)結(jié)構(gòu)主要是:非線性結(jié)構(gòu)數(shù)據(jù)二叉樹的定義、性質(zhì)、邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及其各種基本運(yùn)算算法,包括二叉樹的建立、遍歷、線索化等算法。在此基礎(chǔ)上,介紹二叉樹的一些應(yīng)用問題,包括哈夫曼編碼問題、(平衡)二叉排序樹問題和堆排序問題等。
第八章“樹和森林及其應(yīng)用”介紹樹和森林的數(shù)據(jù)結(jié)構(gòu)、基本算法及其性能分析,樹和森林與二叉樹之間的轉(zhuǎn)換算法等,在此基礎(chǔ)上介紹樹的應(yīng)用---b-樹,應(yīng)用b-樹來實(shí)現(xiàn)數(shù)據(jù)元素的動(dòng)態(tài)查找。本章基本掌握樹和森林的概念和性質(zhì)、數(shù)據(jù)結(jié)構(gòu)、樹的基本算法及性能分析,樹和二叉樹間的轉(zhuǎn)換及其算法,并用應(yīng)用b-樹來實(shí)現(xiàn)數(shù)據(jù)元素的動(dòng)態(tài)查找未能掌握好。
第九章“散列結(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ù)和散列表中解決沖突的處理方法---開放定址法、鏈地址法以及散列表的基本算法及其性能分析。本章概念較為多,所以掌握不太好。
第十章“圖及其應(yīng)用”是邏輯結(jié)構(gòu)為“圖形”的數(shù)據(jù)結(jié)構(gòu)及其應(yīng)用知識(shí)內(nèi)容,主要介紹圖的定義和基礎(chǔ)知識(shí),圖的2種存儲(chǔ)結(jié)構(gòu)。圖的基本算法以及圖的典型應(yīng)用問題(最小生成樹、最短路徑、拓?fù)渑判蚝完P(guān)鍵路徑等)。
二、對(duì)各知識(shí)點(diǎn)的掌握情況。
我對(duì)各知識(shí)點(diǎn)的掌握情況總結(jié)如下:
第一章不太難,能基本掌握。但關(guān)系全書的時(shí)間性能分析有些未能全部掌握。第二章本章重點(diǎn)和難點(diǎn)在查找和排序問題的算法思想上,6種排序方法的性能比較。本章未掌握的為希爾排序、快速排序、歸并排序的時(shí)間復(fù)雜度分析。第三章,對(duì)鏈表掌握還好,對(duì)其數(shù)據(jù)結(jié)構(gòu)進(jìn)行了分析,有循環(huán)鏈表,掌握的不是很好,對(duì)其中一些用法不熟練。第四章堆棧,本章堆棧算法思想較為簡(jiǎn)單,所以能較好掌握,但表達(dá)式計(jì)算問題未掌握好的。第五章的循環(huán)隊(duì)列隊(duì)空、隊(duì)滿的判斷條件問題掌握的不是很好。第六章的重點(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ì)二叉樹掌握較好,其概念,存儲(chǔ),遍歷有很好的掌握。就是對(duì)二叉排序樹有點(diǎn)生疏,它的生成算法不是很會(huì)。第八章樹樹與二叉樹之間的轉(zhuǎn)換,森林與二叉樹的轉(zhuǎn)換算法思想基本掌握。第九章散列的一些知識(shí),沒有深入學(xué)習(xí),大概了解了散列存儲(chǔ)結(jié)構(gòu)散列表,散列函數(shù),沖突的處理方法。第十章了解了圖的逆鄰接表的存儲(chǔ)結(jié)構(gòu),關(guān)鍵路徑求解算法未能掌握好,不能靈活運(yùn)用圖的不同數(shù)據(jù)結(jié)構(gòu)和遍歷算法解決復(fù)雜的應(yīng)用問題。
三、學(xué)習(xí)體會(huì)。
通過學(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)鍵。在第二遍看課本的過程中,要注重對(duì)算法的掌握。對(duì)于一個(gè)算法,讀一遍可能能讀懂,但不可能完全領(lǐng)會(huì)其中的思想。掌握一個(gè)算法,并不是說將算法背過,而是掌握算法的思想。我們需要的是耐心。每看一遍就會(huì)有這一遍的收獲。讀懂算法之后,自己再默寫算法,寫到不會(huì)的地方,看看課本想想自己為什么沒有想到。對(duì)算法的應(yīng)用上,學(xué)習(xí)算法的目的是利用算法解決實(shí)際問題。會(huì)寫課本上已有的算法之后,可以借其思想進(jìn)行擴(kuò)展,逐步提高編程能力。
四、對(duì)課程教學(xué)的建議。
1、感覺上課時(shí)的氣氛不是很好,雖然大部分人都在聽,可是效果不是很好。所以希望老師能在授課中間能穿插一些活躍課堂氛圍的話題,可以是大家都非常關(guān)心的一些內(nèi)容,這樣既讓大家能在思考之余有一個(gè)放松,也能夠提高學(xué)生的學(xué)習(xí)積極性和學(xué)習(xí)效率。
2、學(xué)習(xí)的積極性很重要,有時(shí)候我們花了很長(zhǎng)時(shí)間去寫實(shí)驗(yàn)報(bào)告,也很認(rèn)真的去理解去掌握,可是最后實(shí)驗(yàn)報(bào)告可能就只得了一個(gè)c,抄的人反而得a,這樣的話很容易打擊學(xué)生的積極性,在后面的實(shí)驗(yàn)報(bào)告中沒動(dòng)力再去認(rèn)真寫。所以希望老師能在這方面有所調(diào)整。
3、雖然講課的時(shí)間很緊,但是還是希望老師能在講述知識(shí)點(diǎn)的時(shí)候能運(yùn)用實(shí)際的調(diào)試程序來給我們講解,這樣的話能讓我們對(duì)這些內(nèi)容有更深刻的印象和理解。
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇六
1004012033陳孝婕10計(jì)本3“數(shù)據(jù)結(jié)構(gòu)與算法”這門課程對(duì)于計(jì)算機(jī)科學(xué)與技術(shù)系的學(xué)生來說是非常重要的課程。這門課程主要包括十個(gè)章節(jié)。
一.每章主要知識(shí)點(diǎn)總結(jié)和個(gè)人掌握情況。
第一章主要要求學(xué)生掌握數(shù)據(jù)、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、算法及算法分析等基本概念和基礎(chǔ)知識(shí)。另外,第一章結(jié)合課程學(xué)習(xí)要求,復(fù)習(xí)和掌握算法描述工具--c語(yǔ)言中的指針類型與指針變量、結(jié)構(gòu)類型與結(jié)構(gòu)變量、函數(shù)與參數(shù)、遞歸定義和遞歸函數(shù)、動(dòng)態(tài)存儲(chǔ)分配、文件操作、程序測(cè)試和測(cè)試集、測(cè)試數(shù)據(jù)的設(shè)計(jì)和程序調(diào)試等問題。
從這一章中我不僅學(xué)到了數(shù)據(jù)結(jié)構(gòu)的基本概念和基礎(chǔ)知識(shí),了解到什么是數(shù)據(jù)結(jié)構(gòu),我們?yōu)槭裁匆獙W(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)這門課程。而且復(fù)習(xí)了大一下學(xué)期所學(xué)的c語(yǔ)言程序課程設(shè)計(jì)中的算基本法語(yǔ)句。有利于數(shù)據(jù)結(jié)構(gòu)與算法后面課程的學(xué)習(xí)。
第二章主要學(xué)習(xí)順序表(包括順序串)數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、基本算法及相關(guān)應(yīng)用。知識(shí)點(diǎn)包括順序表的概念、數(shù)據(jù)結(jié)構(gòu)定義、數(shù)據(jù)類型描述、基本算法的實(shí)現(xiàn)及其性能的分析等知識(shí);還有“查找”和“排序”的概念,“查找”包括3種查找方式:簡(jiǎn)單順序查找、二分查找、分塊查找;“排序”包括直接插入排序、希爾排序、冒泡排序、快速排序、直接選擇排序和歸并排序(重點(diǎn)為二路歸并排序)6種排序方式;掌握應(yīng)用順序表來進(jìn)行查找和排序的各類算法以及不同的查找和排序算法間的性能差異。在此基礎(chǔ)上,理解順序串的相關(guān)應(yīng)用。
從這一章中我學(xué)習(xí)到各種不同的查找方法和排序方式,其中二分查找作為重點(diǎn)查找方法我進(jìn)行了重點(diǎn)學(xué)習(xí),熟悉并熟練地運(yùn)用二分查找并且了解到各種排序方法適合于不同的順序表。對(duì)于順序串的學(xué)習(xí),我主要掌握了字符串的基本運(yùn)算,包括:求串長(zhǎng)strlen(s)、連接stract(st1,st2)、求子串substr(s,i,j)、比較串的大小strcmp(s,t)、插入insert(s1,i,s2)、刪除delete(s,i,j)、子串定位index(s1,s2)、置換(replace(s1,i,j,s2)、replace(s,t,v)兩種)。
第三章主要學(xué)習(xí)鏈表(單聊表、循環(huán)鏈表)的概念、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型描述、基本算法以及鏈表相關(guān)應(yīng)用。需要掌握各種鏈表的概念、數(shù)據(jù)結(jié)構(gòu)定義、基本算法實(shí)現(xiàn)以及算法的性能分析等知識(shí),掌握鏈表的相關(guān)應(yīng)用方法,在此基礎(chǔ)上掌握鏈串的相關(guān)知識(shí)。
通過這一章我學(xué)習(xí)了另一種數(shù)據(jù)結(jié)構(gòu)——鏈表,在邏輯結(jié)構(gòu)上,鏈表與順序表一樣,也是線性邏輯結(jié)構(gòu);單鏈表借助“地址”的概念,使用了鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),產(chǎn)生了一種新的數(shù)據(jù)結(jié)構(gòu)——鏈表,鏈表的基本操作是地址運(yùn)算,在此基礎(chǔ)上構(gòu)成的鏈表基本算法的特點(diǎn)也就不同,從鏈表算法的功能看,鏈表的基本運(yùn)算與順序表基本相同,但實(shí)現(xiàn)方法和過程與順序表是不同的,鏈表可分為靜態(tài)鏈表和動(dòng)態(tài)鏈表兩種。這一章我學(xué)習(xí)到的實(shí)際應(yīng)用是鏈表的創(chuàng)建、插入和刪除等基本操作。循環(huán)鏈表的建立和查詢方法。
第四章主要知識(shí)點(diǎn)是在兩種不同的存儲(chǔ)結(jié)構(gòu)下設(shè)計(jì)的堆棧,即順序棧和鏈棧。主要內(nèi)容是順序棧和鏈棧的概念、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)定義和基本運(yùn)算算法及其性能分析。通過對(duì)本章的學(xué)習(xí),要求掌握順序棧及鏈棧的數(shù)據(jù)類型描述、數(shù)據(jù)結(jié)構(gòu)、基本算法及其性能分析等知識(shí)。在此基礎(chǔ)上,了解堆棧的相關(guān)應(yīng)用,掌握應(yīng)用堆棧解決實(shí)際問題的思想及方法。
通過對(duì)這一章的學(xué)習(xí),我了解了堆棧的概念,堆棧的原理、創(chuàng)建方法以及使用方式?!昂筮M(jìn)先出”是其基本原則。利用堆??梢暂p松方便的解決對(duì)稱問題以及括號(hào)匹配等問題。堆棧與順序表、鏈表不同的是,堆棧只能對(duì)一端的數(shù)據(jù)元素進(jìn)行操作,即只在棧頂進(jìn)行元素的插入和刪除。掌握順序棧和鏈表的存儲(chǔ)結(jié)構(gòu)是學(xué)習(xí)堆棧的要素之一。堆棧是一類常用的數(shù)據(jù)結(jié)構(gòu),被廣泛應(yīng)用于各種程序設(shè)計(jì)中。
第五章的重點(diǎn)知識(shí)是在順序存儲(chǔ)和鏈接存儲(chǔ)下的兩種隊(duì)列——順序(循環(huán))隊(duì)列和鏈隊(duì)。
列的數(shù)據(jù)結(jié)構(gòu)、基本運(yùn)算及其性能分析以及應(yīng)用。通過本章的學(xué)習(xí),要求掌握順序隊(duì)列(重點(diǎn)是循環(huán)隊(duì)列)及鏈隊(duì)列的概念、數(shù)據(jù)類型描述、數(shù)據(jù)結(jié)構(gòu)、基本算法及其性能分析等知識(shí)。在此基礎(chǔ)上,了解隊(duì)列的相關(guān)應(yīng)用,掌握應(yīng)用隊(duì)列來解決實(shí)際問題的思想及方法。
通過這一章的學(xué)習(xí),我掌握了隊(duì)列的定義,概念,創(chuàng)建以及“對(duì)頭刪除”,“隊(duì)尾插入”的原則。重點(diǎn)了解了判斷循環(huán)隊(duì)列空和滿的判斷條件。同堆棧一樣,隊(duì)列也是一種具有線性邏輯結(jié)構(gòu)、運(yùn)算受限制的數(shù)據(jù)結(jié)構(gòu)。與堆棧只在一端(棧頂)進(jìn)行元素的插入和刪除運(yùn)算不同的是,隊(duì)列是在對(duì)頭進(jìn)行插入,而在隊(duì)尾完成數(shù)據(jù)元素的刪除,所以隊(duì)列的算法和適用的應(yīng)用問題與堆棧有很大的區(qū)別。隊(duì)列作為一類常用的數(shù)據(jù)結(jié)構(gòu),被廣泛應(yīng)用于各種程序設(shè)計(jì)中。
第六章主要學(xué)習(xí)數(shù)組、系數(shù)矩陣和廣義表的基本概念、集中特殊矩陣的存儲(chǔ)結(jié)構(gòu)及基本運(yùn)算,在此基礎(chǔ)上學(xué)習(xí)特殊矩陣的計(jì)算算法與廣義表應(yīng)用等相關(guān)問題。通過本章的學(xué)習(xí),要求掌握特殊矩陣的壓縮存儲(chǔ)結(jié)構(gòu),在該存儲(chǔ)結(jié)構(gòu)下元素的定位方法,理解稀疏矩陣的計(jì)算和廣義表的存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算。了解矩陣與廣義表的相關(guān)應(yīng)用。
通過這章的學(xué)習(xí)和前幾章的比較,我了解到前幾章的線性結(jié)構(gòu)中的數(shù)據(jù)元素都是非結(jié)構(gòu)的原子類型,即每一個(gè)元素都是不可再分解的。本章討論的數(shù)組和廣義表等數(shù)據(jù)結(jié)構(gòu)可以看成是在前幾章線性結(jié)構(gòu)基礎(chǔ)上的一個(gè)擴(kuò)展:組成該數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)元素本身也是一個(gè)數(shù)據(jù)結(jié)構(gòu)。矩陣計(jì)算應(yīng)該數(shù)值計(jì)算方面的問題,由于矩陣和數(shù)組的關(guān)系以及特殊矩陣存儲(chǔ)結(jié)構(gòu)的復(fù)雜性,進(jìn)而使得特殊矩陣的存儲(chǔ)結(jié)構(gòu)和算法也表現(xiàn)出其特殊性,所以數(shù)據(jù)機(jī)構(gòu)課程應(yīng)該解決其計(jì)算問題。
第七章的學(xué)習(xí)重點(diǎn)是二叉樹的概念、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)定義和各種基本算法,在此基礎(chǔ)上介紹二叉樹的一些應(yīng)用問題。通過本章的學(xué)習(xí),我掌握了二叉樹概念及其性質(zhì)、二叉樹的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)等知識(shí),掌握二叉樹的建立、遍歷、線索化等基本概念和算法及性能分析,能熟練應(yīng)用二叉樹這章結(jié)構(gòu)來解決一些實(shí)際問題,如哈夫曼樹及哈夫曼編碼、查找與排序(二叉樹排序)等問題。了解堆棧排序及其算法等知識(shí)。二叉樹是非線性數(shù)據(jù)結(jié)構(gòu),是樹形結(jié)構(gòu)的一種特殊形式。在現(xiàn)實(shí)生活有許多數(shù)據(jù)關(guān)系可抽象為樹或二叉樹的形式。本章中的二叉樹的概念及其性質(zhì)、二叉排序樹、存儲(chǔ)結(jié)構(gòu)、遍線索(化)、基本算法為重點(diǎn)內(nèi)容,二叉排序樹的應(yīng)用為難點(diǎn)內(nèi)容。
第八章的學(xué)習(xí)重點(diǎn)是樹和森林的數(shù)據(jù)結(jié)構(gòu)、基本算法及其性能分析,樹和森林與二叉樹間的轉(zhuǎn)化算法等,在此基礎(chǔ)上介紹樹的應(yīng)用——b-樹。通過本章的學(xué)習(xí),我掌握了樹和森林的概念和性質(zhì)、數(shù)據(jù)結(jié)構(gòu)、樹的基本算法及性能分析、樹與二叉樹間的轉(zhuǎn)換及其算法,并能應(yīng)用b-樹來實(shí)現(xiàn)數(shù)據(jù)元素的動(dòng)態(tài)查找。舒適一種非線性結(jié)構(gòu),它在二叉樹的基礎(chǔ)上做了更為一般化的擴(kuò)展,而森林是樹的集合。在樹結(jié)構(gòu)中,每一個(gè)元素最多只有一個(gè)前驅(qū),但可能有多個(gè)后繼。現(xiàn)實(shí)生活中的家族關(guān)系、單位的組成結(jié)構(gòu)等,均可抽象為樹的形式。
第九章學(xué)習(xí)重點(diǎn)是散列結(jié)構(gòu)的相關(guān)知識(shí),學(xué)習(xí)常用的散列函數(shù)和沖突處理方法,散列表的常用算法及其性能分析,通過本章的學(xué)習(xí),我掌握了散列結(jié)構(gòu)和散列函數(shù)的相關(guān)概念,掌握散列結(jié)構(gòu)的存儲(chǔ)(散列表)的相關(guān)概念,要求掌握散列沖突處理方法(散列法)的相關(guān)知識(shí),并能靈活運(yùn)用散列法解決應(yīng)用問題。
散列結(jié)構(gòu)是使用散列函數(shù)建立數(shù)據(jù)結(jié)點(diǎn)關(guān)鍵字與存儲(chǔ)地址之間的對(duì)應(yīng)關(guān)系并提供多種當(dāng)數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)地址發(fā)生“沖突”時(shí)的處理方法而建立的一種數(shù)據(jù)結(jié)構(gòu)。散列結(jié)構(gòu)的查找等運(yùn)算效率是很高的,本章中的散列函數(shù)、散列結(jié)構(gòu)、散列表、散列法的基本概念和基本算法是重點(diǎn),線性探測(cè)散列算法、鏈地址法散列算法和散列法的應(yīng)用是難點(diǎn)。
第十章的學(xué)習(xí)重點(diǎn)是圖的定義及性質(zhì),圖的四種存儲(chǔ)結(jié)構(gòu),圖的兩種遍歷算法以及圖的典型應(yīng)用,包括最小生成樹、最短路徑、拓?fù)渑判蚝完P(guān)鍵路徑等。通過本章學(xué)習(xí),我掌握了圖的概念和基本性質(zhì),圖的存儲(chǔ)結(jié)構(gòu)(鄰接矩陣和鄰接表)及其基本算法、圖的遍歷及算法、圖的最小生成樹普利姆算法或者克魯斯卡爾算法、圖的最短路徑迪杰斯特拉算法和弗洛伊德算法、有向無(wú)環(huán)圖拓?fù)渑判蛩惴āA私饬藞D的逆鄰接表、十字鏈表、鄰接多重表存儲(chǔ)結(jié)構(gòu)及其基本算法、關(guān)鍵路徑求解算法,并能靈活運(yùn)用圖的不同的數(shù)據(jù)結(jié)構(gòu)和遍歷算法解決復(fù)雜的應(yīng)用問題。
二.課程學(xué)習(xí)體會(huì)。
在學(xué)習(xí)開始的時(shí)候,老師就明確提出它不是一種計(jì)算機(jī)語(yǔ)言,不會(huì)介紹c語(yǔ)言的變成語(yǔ)言,而是通過學(xué)習(xí)可以設(shè)計(jì)出良好的算法,高效地組織數(shù)據(jù)。一個(gè)程序無(wú)論采用何種語(yǔ)言,其基本算法思想不會(huì)改變。聯(lián)系到在大一和大二上學(xué)期學(xué)習(xí)的c和c++語(yǔ)言,我深刻認(rèn)識(shí)到了這一點(diǎn)。“軟件開發(fā)好比寫作文,計(jì)算機(jī)語(yǔ)言提供了許多華麗的辭藻,而數(shù)據(jù)結(jié)構(gòu)則考慮如何將這些辭藻組織成一篇優(yōu)秀的文章來?!痹趯W(xué)習(xí)這門課中,要熟悉對(duì)算法思想的一些描述手段,包括文字描述、圖形描述和計(jì)算機(jī)語(yǔ)言描述等。因此,計(jì)算機(jī)語(yǔ)言基礎(chǔ)是必須的,因?yàn)樗峁┝艘环N重要的算法思想描述手段——機(jī)器可識(shí)別的描述。
這門課結(jié)束之后,我總結(jié)了學(xué)習(xí)中遇到的一些問題,最為突出的,書本上的知識(shí)與老師的講解都比較容易理解,但是當(dāng)自己采用剛學(xué)的知識(shí)點(diǎn)編寫程序時(shí)卻感到十分棘手,有時(shí)表現(xiàn)在想不到適合題意的算法,有時(shí)表現(xiàn)在算法想出來后,只能將書本上原有的程序段謄寫到自己的程序中再加以必要的連接以完成程序的編寫。針對(duì)這一情況,我會(huì)嚴(yán)格要求自己,熟練掌握算法思想,盡量獨(dú)立完成程序的編寫與修改工作,只有這樣,才能夠提高運(yùn)用知識(shí),解決問題的能力。
1、建議在上課過程中加大隨堂練習(xí)的分量,以便學(xué)生能當(dāng)堂消化課堂上學(xué)習(xí)的知識(shí),也便于及時(shí)了解學(xué)生對(duì)知識(shí)點(diǎn)的掌握情況,同時(shí)有助于學(xué)生上課積極思考,不會(huì)開小差。
2、建議在課時(shí)允許的情況下,增加習(xí)題課的分量,通過課堂的習(xí)題講解,加深對(duì)知識(shí)點(diǎn)的掌握,同時(shí)對(duì)各知識(shí)點(diǎn)的運(yùn)用有一個(gè)更為直觀和具體的認(rèn)識(shí)。
以上便是我對(duì)《數(shù)據(jù)結(jié)構(gòu)與算法》這門課的學(xué)習(xí)總結(jié),我會(huì)抓緊時(shí)間將沒有吃透的知識(shí)點(diǎn)補(bǔ)齊。今后我仍然會(huì)繼續(xù)學(xué)習(xí),克服學(xué)習(xí)中遇到的難關(guān),在打牢基礎(chǔ)的前提下向更深入的層面邁進(jìn)!
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇七
本學(xué)期開設(shè)的《數(shù)據(jù)結(jié)構(gòu)與算法》課程已經(jīng)告一段落,現(xiàn)就其知識(shí)點(diǎn)及其掌握情況、學(xué)習(xí)體會(huì)以及對(duì)該門課程的教學(xué)建議等方面進(jìn)行學(xué)習(xí)總結(jié)。
第一章是這門學(xué)科的基礎(chǔ)章節(jié),從整體方面介紹了“數(shù)據(jù)結(jié)構(gòu)和算法”,同時(shí)引入相關(guān)的學(xué)術(shù)概念和術(shù)語(yǔ),如數(shù)據(jù)、數(shù)據(jù)元素、數(shù)據(jù)類型以及數(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)分為四類:集合型、線性、樹形和圖形結(jié)構(gòu),數(shù)據(jù)元素的存儲(chǔ)結(jié)構(gòu)分為:順序存儲(chǔ)、鏈接存儲(chǔ)、索引存儲(chǔ)和散列存儲(chǔ)四類。難點(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)元素,給算法的效率帶來較大的提高,且在存儲(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)算受限制的線性結(jié)構(gòu)。其基本運(yùn)算方法與順序表和鏈表運(yùn)算方法基本相同,不同的是堆棧須遵循“先進(jìn)后出”的規(guī)則,對(duì)堆棧的操作只能在棧頂進(jìn)行;堆棧在文字處理,匹配問題和算術(shù)表達(dá)式的求值問題方面的應(yīng)用。
第五章,隊(duì)列是一種夠類似堆棧的線性結(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ì)稱矩陣、三角矩陣、對(duì)角矩陣和稀疏矩陣,書中分別詳細(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)式的表示問題。
第七章二叉樹的知識(shí)是重點(diǎn)內(nèi)容。在介紹有關(guān)概念時(shí),提到了二叉樹的性質(zhì)以及兩種特殊的二叉樹:完全二叉樹和滿二叉樹。接著介紹二叉樹的順序存儲(chǔ)和鏈接存儲(chǔ)以及生成算法。重點(diǎn)介紹二叉樹的遍歷算法(遞歸算法、先序、中序和后序遍歷非遞歸算法)和線索二叉樹。二叉樹的應(yīng)用:基本算法、哈弗曼樹、二叉排序樹和堆排序,其中關(guān)于二叉排序樹和哈弗曼書的構(gòu)建是重點(diǎn)。
第八章介紹了樹。樹與二叉樹是不同的概念。教材介紹了樹和森林的概念、遍歷和存儲(chǔ)結(jié)構(gòu),還有樹、森林和二叉樹的相互關(guān)系,樹或森林怎樣轉(zhuǎn)化成二叉樹,二叉樹又如何轉(zhuǎn)換為樹和森林等算法。
第九章,散列結(jié)構(gòu)是一種查找效率很高的一種數(shù)據(jù)結(jié)構(gòu)。本章的主要知識(shí)點(diǎn)有:散列結(jié)。
構(gòu)的概念及其存儲(chǔ)結(jié)構(gòu)、散列函數(shù)、兩種沖突處理方法、線性探測(cè)散列和鏈地址散列的基本算法以及散列結(jié)構(gòu)的查找性能分析。
最后一章介紹了圖的概念及其應(yīng)用,是本書的難點(diǎn)。圖的存儲(chǔ)結(jié)構(gòu)的知識(shí)點(diǎn)有:鄰接矩陣、鄰接表、逆鄰接表、十字鏈表和鄰接多重表。圖的遍歷包括圖的深度優(yōu)先搜索遍歷和廣度優(yōu)先搜索遍歷。其余知識(shí)點(diǎn)有:有向圖、連通圖、生成樹和森林、最短路徑問題和有向無(wú)環(huán)圖及其應(yīng)用。有向無(wú)環(huán)圖重點(diǎn)理解aov網(wǎng)和拓?fù)渑判蚣捌渌惴ā?/p>
二、對(duì)各知識(shí)點(diǎn)的掌握情況。
總體來看,對(duì)教材中的知識(shí)點(diǎn)理解較為完善,但各個(gè)章節(jié)均出現(xiàn)有個(gè)別知識(shí)點(diǎn)較為陌生的現(xiàn)象,對(duì)某些具體的問題和應(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ì)分塊查找較為含糊。刪除方面的問題比較容易些。排序問題中,由于冒泡排序在大一c語(yǔ)言課上已經(jīng)學(xué)習(xí)過,再來學(xué)習(xí)感覺相對(duì)輕松些。對(duì)插入排序和選擇排序理解良好,但是,在實(shí)際運(yùn)用中仍然出現(xiàn)明顯不熟練的現(xiàn)象。由于在歸并排序?qū)W習(xí)中感覺較吃力,現(xiàn)在對(duì)這種排序方法仍然非常模糊,所以需要花較多的時(shí)間來補(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é)過的順序表和鏈表的知識(shí),加上思想上較為重視,因此這部分內(nèi)容是我對(duì)全書掌握最好的一部分。在一些實(shí)際問題的應(yīng)用與處理方面,對(duì)其進(jìn)行存儲(chǔ)結(jié)構(gòu)的選擇還是需要認(rèn)真考慮的。在算法的時(shí)間復(fù)雜度和空間性能的分析仍有些困難。
第六章的學(xué)習(xí)感覺較為困難的部分在于矩陣的應(yīng)用上。在矩陣的存儲(chǔ)結(jié)構(gòu)中,使用三元組表發(fā)相對(duì)較為簡(jiǎn)單,而使用十字鏈表就有些困難了。但在某些問題的處理上又必須或從節(jié)省空間考慮采用十字鏈表來處理,想矩陣的加法運(yùn)算。廣義表的定義還是比較容易理解的,其存儲(chǔ)結(jié)構(gòu)也不難掌握,關(guān)于應(yīng)用也只局限于在多項(xiàng)式的表示上。
第七章是全書的重點(diǎn)。在這一章中概念和定義都很多,有些很昏人但都很重要,要區(qū)分開來。二叉樹的性質(zhì)容易懂卻很難記憶。對(duì)二叉樹的存儲(chǔ)結(jié)構(gòu)和遍歷算法這部分內(nèi)容掌握較好,能夠熟練運(yùn)用。關(guān)于二叉排序樹和的哈弗曼樹卻相對(duì)有些壓力,其生成和對(duì)其關(guān)鍵字的插入和刪除時(shí)重點(diǎn)。
第八章關(guān)于樹的分析,首先要明確樹和二叉樹的區(qū)別,以及書中的相關(guān)定義和概念。關(guān)于二叉樹、樹和森林之間的轉(zhuǎn)換和遍歷方法是重點(diǎn),但不算是難。接著就是數(shù)的存儲(chǔ)結(jié)構(gòu)的選擇及轉(zhuǎn)化為二叉樹的算法,這部分有些吃力。再就介紹了特殊的樹-b樹,關(guān)于對(duì)b樹的操作,插入關(guān)鍵字是中帶領(lǐng)和難點(diǎn)。
第九章散列結(jié)構(gòu)這一章理解比較完善的知識(shí)點(diǎn)有:基本概念和存儲(chǔ)結(jié)構(gòu)。散列函數(shù)中直接定址法和除留余數(shù)法學(xué)得比較扎實(shí),對(duì)數(shù)字分析法等方法則感覺較為陌生。對(duì)兩種沖突處理的算法思想的理解良好,問題在于用c語(yǔ)言描述上。
在學(xué)習(xí)開始,王教授就明確提出它不是一種計(jì)算機(jī)語(yǔ)言,不會(huì)介紹新的關(guān)鍵詞,而是通過學(xué)習(xí)可以設(shè)計(jì)出良好的算法,高效地組織數(shù)據(jù)。一個(gè)程序無(wú)論采用何種語(yǔ)言,其基本算法思想不會(huì)改變。聯(lián)系到在大一和大二上學(xué)期學(xué)習(xí)的c和c++語(yǔ)言,我深刻認(rèn)識(shí)到了這一點(diǎn)。“軟件開發(fā)好比寫作文,計(jì)算機(jī)語(yǔ)言提供了許多華麗的辭藻,而數(shù)據(jù)結(jié)構(gòu)則考慮如何將這些辭藻組織成一篇優(yōu)秀的文章來?!痹趯W(xué)習(xí)這門課中,要熟悉對(duì)算法思想的一些描述手段,包括文字描述、圖形描述和計(jì)算機(jī)語(yǔ)言描述等。因此,計(jì)算機(jī)語(yǔ)言基礎(chǔ)是必須的,因?yàn)樗峁┝艘环N重要的算法思想描述手段——機(jī)器可識(shí)別的描述。
這門課結(jié)束之后,我總結(jié)了學(xué)習(xí)中遇到的一些問題,最為突出的,書本上的知識(shí)與老師的講解都比較容易理解,但是當(dāng)自己采用剛學(xué)的知識(shí)點(diǎn)編寫程序時(shí)卻感到十分棘手,有時(shí)表現(xiàn)在想不到適合題意的算法,有時(shí)表現(xiàn)在算法想出來后,只能將書本上原有的程序段謄寫到自己的程序中再加以必要的連接以完成程序的編寫。針對(duì)這一情況,我會(huì)嚴(yán)格要求自己,熟練掌握算法思想,盡量獨(dú)立完成程序的編寫與修改工作,只有這樣,才能夠提高運(yùn)用知識(shí),解決問題的能力。
四、對(duì)《數(shù)據(jù)結(jié)構(gòu)與算法》課程教學(xué)的建議。
1、建議在上課過程中加大隨堂練習(xí)的分量,以便學(xué)生能當(dāng)堂消化課堂上學(xué)習(xí)的知識(shí),也便于及時(shí)了解學(xué)生對(duì)知識(shí)點(diǎn)的掌握情況,同時(shí)有助于學(xué)生保持良好的精神狀態(tài)。
2、建議在課時(shí)允許的情況下,增加習(xí)題課的分量,通過課堂的習(xí)題講解,加深對(duì)知識(shí)點(diǎn)的掌握,同時(shí)對(duì)各知識(shí)點(diǎn)的運(yùn)用有一個(gè)更為直觀和具體的認(rèn)識(shí)。
以上便是我對(duì)《數(shù)據(jù)結(jié)構(gòu)與算法》這門課的學(xué)習(xí)總結(jié),我會(huì)抓緊時(shí)間將沒有吃透的知識(shí)點(diǎn)補(bǔ)齊。今后我仍然會(huì)繼續(xù)學(xué)習(xí),克服學(xué)習(xí)中遇到的難關(guān),在打牢基礎(chǔ)的前提下向更深入的層面邁進(jìn)!
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇八
本學(xué)期所學(xué)習(xí)的《數(shù)據(jù)結(jié)構(gòu)與算法》課程已經(jīng)告一段落,就其知識(shí)點(diǎn)及其掌握情況、學(xué)習(xí)體會(huì)以及對(duì)該門課程的教學(xué)建議等方面進(jìn)行學(xué)習(xí)總結(jié)。以便在所學(xué)習(xí)知識(shí)有更深刻的認(rèn)識(shí)。
學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)之前、一直以為數(shù)據(jù)結(jié)構(gòu)是一門新的語(yǔ)言、后來才知道學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)是為了更加高效的的組織數(shù)據(jù)、設(shè)計(jì)出良好的算法,而算法則是一個(gè)程序的靈魂。經(jīng)過了一學(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ì)問題中所出現(xiàn)的計(jì)算機(jī)處理對(duì)象以及它們之間關(guān)系和操作的學(xué)科。
第一章主要介紹了相關(guān)概念,如數(shù)據(jù)、數(shù)據(jù)元素、數(shù)據(jù)類型以及數(shù)據(jù)結(jié)構(gòu)的定義。其中,數(shù)據(jù)結(jié)構(gòu)包括邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和運(yùn)算集合。邏輯結(jié)構(gòu)分為四類:集合型、線性、樹形和圖形結(jié)構(gòu),數(shù)據(jù)元素的存儲(chǔ)結(jié)構(gòu)分為:順序存儲(chǔ)、鏈接存儲(chǔ)、索引存儲(chǔ)和散列存儲(chǔ)四類。最后著重介紹算法性能分析,包括算法的時(shí)間性能分析以及算法的空間性能分析。
第二章具體地介紹了順序表的定義、特點(diǎn)及其主要操作,如查找、插入和刪除的實(shí)現(xiàn)。需要掌握對(duì)它們的性能估計(jì)。包括查找算法的平均查找長(zhǎng)度,插入與刪除算法中的對(duì)象平均移動(dòng)次數(shù)。
鏈表中數(shù)據(jù)元素的存儲(chǔ)不一定是連續(xù)的,還可以占用任意的、不連續(xù)的物理存儲(chǔ)區(qū)域。與順序表相比,鏈表的插入、刪除不需要移動(dòng)元素,給算法的效率帶來較大的提高。鏈表這一章中介紹了鏈表的節(jié)點(diǎn)結(jié)構(gòu)、靜態(tài)與動(dòng)態(tài)鏈表的概念、鏈表的基本運(yùn)算(如求表長(zhǎng)、插入、查找、刪除等)、單鏈表的建立(頭插法和尾插法)以及雙向循環(huán)鏈表的定義、結(jié)構(gòu)、功能和基本算法。
第三章介紹了堆棧與隊(duì)列這兩種運(yù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è)元素空間來區(qū)分隊(duì)列空、隊(duì)列滿的方法。
第四章串和數(shù)組中,我們知道串是一種特殊的線性表,是由零個(gè)或多個(gè)任意字符組成的字符序列。串的儲(chǔ)存結(jié)構(gòu)分為緊縮模式和非緊縮模式。
基本運(yùn)算需掌握求串長(zhǎng)、串賦值、連接操作、求子串、串比較、串定位、串插入、串刪除、串替換等。
第五章二叉樹的知識(shí)是重點(diǎn)內(nèi)容。在介紹有關(guān)概念時(shí),提到了二叉樹的性質(zhì)以及兩種特殊的二叉樹:完全二叉樹和滿二叉樹。接著介紹二叉樹的順序存儲(chǔ)和鏈接存儲(chǔ)以及生成算法。重點(diǎn)介紹二叉樹的遍歷算法(遞歸算法、先序、中序和后序遍歷非遞歸算法)和線索二叉樹。二叉樹的應(yīng)用:基本算法、哈弗曼樹、二叉排序樹和堆排序。
樹與二叉樹是不同的概念。教材介紹了樹和森林的概念、遍歷和存儲(chǔ)結(jié)構(gòu),還有樹、森林和二叉樹的相互關(guān)系,樹或森林怎樣轉(zhuǎn)化成二叉樹,二叉樹又如何轉(zhuǎn)換為樹和森林等算法。
第六章介紹了圖的概念及其應(yīng)用,圖的存儲(chǔ)結(jié)構(gòu)的知識(shí)點(diǎn)有:鄰接矩陣、鄰接表、逆鄰接表、十字鏈表和鄰接多重表。圖的遍歷包括圖的深度優(yōu)先搜索遍歷和廣度優(yōu)先搜索遍歷。其余知識(shí)點(diǎn)有:有向圖、連通圖、生成樹和森林、最短路徑問題和有向無(wú)環(huán)圖及其應(yīng)用。有向無(wú)環(huán)圖重點(diǎn)理解aov網(wǎng)和拓?fù)渑判蚣捌渌惴ā?/p>
最后兩章集體說明了查找和排序算法,查找教材上介紹了靜態(tài)查找表和哈希查找表,靜態(tài)查找表中介紹了順序查找、折半查找以及分塊查找。哈希法中,學(xué)習(xí)要點(diǎn)包括哈希函數(shù)的比較;解決地址沖突的線性探查法的運(yùn)用,平均探查次數(shù);解決地址沖突的二次哈希法的運(yùn)用。
排序是使用最頻繁的一類算法,可分為內(nèi)部排序和外部排序。主要需要理解排序的基本概念,在算法上、需要掌握插入排序(包括直接插入排序算法、折半插入排序算法),交換排序(包括冒泡排序算法、快速排序遞歸算法),選擇排序(包括直接選擇排序算法、堆排序算法)等。
二、對(duì)各知識(shí)點(diǎn)的掌握情況。
總體來看,對(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ì)分塊查找較為含糊;排序問題中,由于冒泡排序在大一c語(yǔ)言課上已經(jīng)學(xué)習(xí)過,再來學(xué)習(xí)感覺很輕松。對(duì)插入排序和選擇排序理解良好,但是,在實(shí)際運(yùn)用中仍然出現(xiàn)明顯不熟練的現(xiàn)象。由于在歸并排序?qū)W習(xí)中感覺較吃力,現(xiàn)在對(duì)這種排序方法仍然非常模糊,所以需要花較多的時(shí)間來補(bǔ)習(xí)。此外串的模式匹配也是較難理解的一個(gè)地方。
鏈表這一章中,除對(duì)雙向循環(huán)鏈表這一知識(shí)點(diǎn)理解困難之外,其他的知識(shí)點(diǎn)像單鏈表的建立和基本算法等都較為熟悉。
接下來的有關(guān)堆棧以及隊(duì)列的知識(shí)點(diǎn)比較少,除有關(guān)算法較為特殊以外,其余算法都是先前學(xué)過的順序表和鏈表的知識(shí),加上思想上較為重視,因此這部分內(nèi)容是我對(duì)全書掌握最好的一部分。不足之處仍然表現(xiàn)在算法的性能分析上。
在學(xué)習(xí)第六章時(shí)感覺較為吃力的部分在于矩陣的應(yīng)用上,尤其對(duì)矩陣轉(zhuǎn)置算法的c語(yǔ)言描述不太理解。稀疏矩陣相加算法中,用三元組表實(shí)現(xiàn)比較容易理解,對(duì)十字鏈表進(jìn)行矩陣相加的方法較為陌生。
第七章是全書的重點(diǎn),卻也有一些內(nèi)容沒有完全理解。在第一節(jié)基本概念中,二叉樹的性質(zhì)容易懂卻很難記憶。對(duì)二叉樹的存儲(chǔ)結(jié)構(gòu)和遍歷算法這部分內(nèi)容掌握較好,能夠熟練運(yùn)用,而對(duì)于二叉樹應(yīng)用中的哈弗曼樹卻比較陌生。
第八章內(nèi)容較少,牽涉到所學(xué)的隊(duì)列的有關(guān)內(nèi)容,總體來說理解上沒有什么困難,問題依舊出現(xiàn)在算法的性能分析上。
散列結(jié)構(gòu)這一章理解比較完善的知識(shí)點(diǎn)有:基本概念和存儲(chǔ)結(jié)構(gòu)。散列函數(shù)中直接定址法和除留余數(shù)法學(xué)得比較扎實(shí),對(duì)數(shù)字分析法等方法則感覺較為陌生。對(duì)兩種沖突處理的算法思想的理解良好,問題在于用c語(yǔ)言描述上。
最后一章,圖及其應(yīng)用中,圖的定義、基本運(yùn)算如圖的生成等起初理解有困難,但隨著學(xué)習(xí)深入,對(duì)它的概念也逐步明朗起來。鄰接矩陣、鄰接表和逆鄰接表掌握較好,而對(duì)十字鏈表和鄰接多重表則較為陌生。感覺理解較為吃力的內(nèi)容還有圖的遍歷(包括深度和廣度優(yōu)先遍歷),最小生成樹問題也是比較陌生的知識(shí)點(diǎn)。最短路徑和aov網(wǎng)學(xué)習(xí)起來感覺比較輕松,而對(duì)于c語(yǔ)言描述卻又不大明白。
由于平時(shí)上機(jī)練習(xí)的少,對(duì)于教材中很多算法都掌握的不是很熟悉、不過這些都是可以彌補(bǔ)的,我會(huì)在剩下的時(shí)間中不斷練習(xí)書上給出的算法和練習(xí),正如教材上說的,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),僅從書本上學(xué)習(xí)是不夠的,必須經(jīng)過大量的程序設(shè)計(jì)實(shí)踐,在實(shí)踐中體會(huì)構(gòu)造性思維方法,掌握數(shù)據(jù)組織與程序設(shè)計(jì)技術(shù)。
三、學(xué)習(xí)體會(huì):
多做實(shí)驗(yàn)!這個(gè)就沒有太多理由了,我一直覺得編程是一門熟練科學(xué),多編程,水平肯定會(huì)提高,最重要的是能夠養(yǎng)成一種感覺,就是對(duì)程序?qū)λ惴ǖ拿舾?,為什么那些牛人看一個(gè)算法一下子就看懂了?而自己要看很久才能弄懂,而且弄懂了過了一陣子又忘記了?其實(shí)這個(gè)是因?yàn)榕H藗円郧翱吹某绦蚝芏?,編得也很多,所以他們有了那種感覺,所以我覺得大家應(yīng)該多看程序,多寫程序,培養(yǎng)自己的感覺。
復(fù)習(xí)和考試的技巧,我想大家應(yīng)該都有這樣的感覺,就是覺得自己什么都掌握了,但是在考試的時(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)說過其實(shí)我們學(xué)的算法也就是幾十個(gè),那么我們的任務(wù)也就是理解這幾十個(gè)算法,復(fù)習(xí)也就是要加深你的理解。如何理解算法,然后理解到什么程度呢?是能默出整個(gè)算法嗎?其實(shí)不是這樣的,數(shù)據(jù)結(jié)構(gòu)的考試有它的特點(diǎn),考過程考試了,大家應(yīng)該都發(fā)現(xiàn)數(shù)據(jù)結(jié)構(gòu)其實(shí)不要求你把整個(gè)算法背出來,它注重考察你的理解,那么怎么考察呢?其實(shí)也就是兩種方式吧,一種就是用實(shí)例,就是給你一個(gè)例子,要你用某個(gè)算法運(yùn)行出結(jié)果,我想這個(gè)期末考試的時(shí)候仍然會(huì)有很多這樣的題目,比如排序那塊就很好出這樣的題目,要復(fù)習(xí)這種題目我覺得很簡(jiǎn)單,就是每個(gè)算法都自己用例子去實(shí)踐一下,以不變應(yīng)萬(wàn)變,我期中復(fù)習(xí)的時(shí)候就是這樣去做的,而且考試之前我就覺得那個(gè)并查集的題目就很有可能會(huì)考,于是就自己出了幾個(gè)例子,做了一下。另外一種考察方式就是算法填空和算法改錯(cuò),可能有一些同學(xué)覺得這種題目很難,其實(shí)我們首先可以確定這兩種題目肯定是與書上算法有關(guān)系的,只要理解了書上的算法就可以了,有人覺得看完書以后什么都懂了,而且要默也默得出來,其實(shí)不是這樣的,算法改錯(cuò)和填空主要是考察的細(xì)微處,雖然你覺得你默得出來,那是能夠默出算法的主體部分,很多細(xì)微的地方你就會(huì)很容易忽略。我想大家考過期中考以后應(yīng)該都有這種感覺吧?那要怎樣解決這種問題呢?我覺得有兩種方法,一種就是自己去編程實(shí)現(xiàn),這種方法比較有意義,還能夠提高編程水平,另外一種就是用實(shí)例分析算法的每句話,我認(rèn)為這種方法是最有效的。
然后還有一種題目,就是最后的寫算法的題目,我覺得這種題目還是很好解決的,只要是能夠自己做出作業(yè)的,基本上都會(huì)很容易做出來,這也是為什么我前面覺得平時(shí)做作業(yè)應(yīng)該自己獨(dú)立思考的原因,同時(shí)做這種題目千萬(wàn)要小心,尤其是題目簡(jiǎn)單的時(shí)候,那肯定會(huì)有一些小地方要考慮清楚,一不小心就會(huì)被扣掉很多分,這樣很不值。
我覺得考試的時(shí)候沒有太多要講的,只要復(fù)習(xí)好了,考試的時(shí)候細(xì)心一點(diǎn)就可以了,然后就是做一個(gè)題目開始就要盡量保證正確,如果覺得留在那里等后面做完了再來檢查,這樣錯(cuò)誤還是很有可能檢查不出來,我期中考試的時(shí)候就基本上沒有檢查,因?yàn)槲易雒總€(gè)題目都是確保正確,用的時(shí)間也挺多的,然后也覺得沒有檢查的必要了。
1、建議在上課過程中加大隨堂練習(xí)的分量,以便學(xué)生能當(dāng)堂消化課堂上學(xué)習(xí)的知識(shí),也便于及時(shí)了解學(xué)生對(duì)知識(shí)點(diǎn)的掌握情況,同時(shí)有助于學(xué)生保持良好的精神狀態(tài)。
2、建議在課時(shí)允許的情況下,增加習(xí)題課的分量,通過課堂的習(xí)題講解,加深對(duì)知識(shí)點(diǎn)的掌握,同時(shí)對(duì)各知識(shí)點(diǎn)的運(yùn)用有一個(gè)更為直觀和具體的認(rèn)識(shí)。
3、要更加重視實(shí)驗(yàn)的重要性。
以上便是我對(duì)《數(shù)據(jù)結(jié)構(gòu)與算法》這門課的學(xué)習(xí)總結(jié),我會(huì)抓緊時(shí)間將沒有吃透的知識(shí)點(diǎn)補(bǔ)齊。今后我仍然會(huì)繼續(xù)學(xué)習(xí),克服學(xué)習(xí)中遇到的難關(guān),在打牢基礎(chǔ)的前提下向更深入的層面邁進(jìn)!
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇九
本次課程設(shè)計(jì)所用到的知識(shí)完全是上學(xué)期的知識(shí),通過這次課程設(shè)計(jì),我認(rèn)識(shí)到了我對(duì)數(shù)據(jù)結(jié)構(gòu)這門課的掌握程度。
首先我這個(gè)課程設(shè)計(jì)是關(guān)于二叉樹的,由于是剛接觸二叉樹,所以我掌握的長(zhǎng)度并不深。在編程之前我把有關(guān)于二叉樹的知識(shí)有溫習(xí)了一遍,還好并沒有忘掉。二叉樹這章節(jié)難度中上等,而且內(nèi)容廣泛,所以我只掌握了百分之六七十。
然后,在編程中我認(rèn)識(shí)到了自己動(dòng)手能力的不足,雖然相比較大二而言進(jìn)步很大,但是我還是不滿意,有的在編程中必須看書才能寫出來,有的靠百度,很少是自己寫的。還好,我自己組裝程序的能力還行,要不這東拼西湊的程序根本組裝不了。在編程中我還認(rèn)識(shí)到了,編程不能停下,如果編程的時(shí)間少了,知識(shí)忘的會(huì)很快,而且動(dòng)手也會(huì)很慢。同時(shí),同學(xué)之間的合作也很重要,每個(gè)人掌握的知識(shí)都不一樣,而且掌握程度也不一樣,你不會(huì)的別的同學(xué)會(huì),所以在大家的共同努力下,編程會(huì)變得很容易。在這次編程中,我了解到了自己某些方面的不足,比如說鏈表的知識(shí),雖然我能做一些有關(guān)于鏈表的編程,但是很慢,沒有別人編程的快,另外,二叉樹和圖的知識(shí)最不好掌握,這方面的知識(shí)廣泛而復(fù)雜。以前,沒動(dòng)手編程的時(shí)候覺得這些知識(shí)很容易,現(xiàn)在編程了才發(fā)現(xiàn)自己錯(cuò)了,大錯(cuò)特錯(cuò)了,我們這個(gè)專業(yè)最重視的就是動(dòng)手編程能力,如果我們紙上寫作能力很強(qiáng)而動(dòng)手編程能力很差,那我們就白上這個(gè)專業(yè)了。計(jì)算機(jī)這個(gè)專業(yè)就是鍛煉動(dòng)手編程能力的,一個(gè)人的理論知識(shí)再好,沒有動(dòng)手編程能力,那他只是一個(gè)計(jì)算機(jī)專業(yè)的“入門者”。在編程中我們能找到滿足,如果我們自己編程了一個(gè)程序,我們會(huì)感到自豪,而且充實(shí),因?yàn)槿绻覀儗Q幸粋€(gè)難得程序,我們會(huì)達(dá)到忘我的境界,自己完全沉浸在編程的那種樂趣之中,完全會(huì)廢寢忘食。編程雖然會(huì)乏味很無(wú)聊,但是只要我們沉浸其中,你就會(huì)發(fā)現(xiàn)里面的樂趣,遇到難得,你會(huì)勇往直前,不寫出來永不罷休;遇到容易的,你會(huì)找到樂趣。編程是很乏味,但是那是因?yàn)槟銢]找到編程重的樂趣,你只看到了他的不好,而沒有看到他的好。其實(shí),只要你找到編程中得樂趣,你就會(huì)完全喜歡上他,不編程還好,一編程你就會(huì)變成一個(gè)兩耳不聞窗外事的“植物人”??梢哉f只要你涉及到了計(jì)算機(jī),你就的會(huì)編程,而且還要喜歡上他,永遠(yuǎn)和他打交道,我相信在某一天,我們一定會(huì)把他當(dāng)作我們不可或缺的好朋友。
最后我要談的是長(zhǎng)時(shí)間編程的好處,俗話說“熟能生巧”,確實(shí)是這樣。如果我們長(zhǎng)時(shí)間不編程,在一接觸他,我們會(huì)感到很陌生。有規(guī)律的編程會(huì)提高我們的動(dòng)手能力,我們的思維,也會(huì)讓我們變得很細(xì)心。在一個(gè)幾千行的程序中,我們都能找到錯(cuò)誤,那我們還會(huì)怕其他的錯(cuò)誤嗎?可以說編程是我們?cè)谖覀冞@一行業(yè)的一把利劍,如果我們能很好的利用它,我們就會(huì)成為這個(gè)行業(yè)的真正成功者。也許你會(huì)說就算變成好了也不一定成功,是的,但是你不會(huì)編程就一定不會(huì)成功。如果,我們想成為這個(gè)專業(yè)的成功者,我們就得愛上編程,不管他是怎么得乏味,怎么得無(wú)聊,我們都不能丟掉他。
總之,動(dòng)手編程就是鍛煉我們的動(dòng)手能力,當(dāng)然這個(gè)動(dòng)手能力并不是科研上的動(dòng)手能力,而是我們的動(dòng)手編程能力,記住,只要你真正的喜歡上他,你就會(huì)發(fā)現(xiàn)其中的樂趣,我相信,只要你堅(jiān)持下去,你一定會(huì)喜歡上他,把編程當(dāng)作自己日常生活中一件必須做的事情。
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇十
數(shù)據(jù)結(jié)構(gòu)與算法是計(jì)算機(jī)程序設(shè)計(jì)的重要理論技術(shù)基礎(chǔ),它不僅是計(jì)算機(jī)科學(xué)的核心課程,而且也已經(jīng)成為其他理工專業(yè)的熱門選修課??偟膩碚f感觸還是比較深的,剛開始上的時(shí)候還蠻簡(jiǎn)單的,越到后面感覺越難,算法也更復(fù)雜了,有時(shí)候甚至聽不懂,老師上課時(shí)講的也蠻快的,所以只能靠課下下功夫了。下面是我對(duì)本學(xué)期學(xué)習(xí)這門課的總結(jié)。
第一章的數(shù)據(jù)結(jié)構(gòu)和算法的引入,介紹了數(shù)據(jù)和數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、算法描述工具、算法和算法評(píng)價(jià)四個(gè)方面的知識(shí)。
第二章具體地介紹了順序表的概念、基本運(yùn)算及其應(yīng)用?;具\(yùn)算有:初始化表、求表長(zhǎng)、排序、元素的查找、插入及刪除等。元素查找方法有:簡(jiǎn)單順序查找、二分查找和分塊查找。排序方法有:直接插入排序、希爾排序、冒泡排序、快速排序、直接選擇排序及歸并排序等。最后介紹了順序串的概念,重點(diǎn)在于串的模式匹配。
第三章主要介紹的是線性邏輯結(jié)構(gòu)的數(shù)據(jù)在鏈接存儲(chǔ)方法下數(shù)據(jù)結(jié)構(gòu)鏈表的相關(guān)知識(shí)。主要是單鏈表、循環(huán)鏈表的數(shù)據(jù)類型結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、基本運(yùn)算及其實(shí)現(xiàn)以及鏈表的相關(guān)應(yīng)用問題,在此基礎(chǔ)上介紹了鏈串的相關(guān)知識(shí)。在應(yīng)用方面有多項(xiàng)式的相加問題、歸并問題、箱子排序問題和鏈表在字符處理方面的應(yīng)用問題等。本章未完全掌握的是循環(huán)鏈表的算法問題和c的描述。
第四章介紹在兩種不同的存儲(chǔ)結(jié)構(gòu)下設(shè)計(jì)的堆棧,即順序棧和鏈棧的相關(guān)知識(shí),了解堆棧的相關(guān)應(yīng)用,掌握應(yīng)用堆棧來解決實(shí)際問題的思想及方法。本章主要內(nèi)容是順序棧和鏈棧的概念、數(shù)據(jù)類型、數(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ù)類型描述、數(shù)據(jù)結(jié)構(gòu)和基本運(yùn)算算法及其性能分析等。本章同堆棧有點(diǎn)類似,算法思想較為簡(jiǎn)單,所以能較好掌握;但難點(diǎn)重在循環(huán)隊(duì)列隊(duì)空、隊(duì)滿的判斷條件問題。
第六章“特殊矩陣、廣義表及其應(yīng)用”將學(xué)習(xí)數(shù)組、稀疏矩陣和廣義表的基本概念,幾種特殊矩陣的存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算,在此基礎(chǔ)上學(xué)習(xí)特殊矩陣的計(jì)算算法與廣義表應(yīng)用等相關(guā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)。
第七章二叉樹及其應(yīng)用。分為二叉樹的基本概念、二叉樹存儲(chǔ)結(jié)構(gòu)、二叉樹的遍歷算法、線索二叉樹、二叉樹的應(yīng)用(哈夫曼樹、二叉排序樹、堆和堆排序、基本算法)?;舅惴òǘ鏄涞慕ⅰ⒈闅v、線索化等算法。在此基礎(chǔ)上,介紹二叉樹的一些應(yīng)用問題,包括哈夫曼編碼問題、(平衡)二叉排序樹問題和堆排序問題等。
第八章說的是樹和森林,首先我們要知道樹與二叉樹是不同的概念。課本介紹了樹和森林的概念、遍歷和存儲(chǔ)結(jié)構(gòu),還有樹、森林和二叉樹的相互關(guān)系,樹或森林怎樣轉(zhuǎn)化成二叉樹,二叉樹又如何轉(zhuǎn)換為樹和森林等算法。
第九章“散列結(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ù)和散列表中解決沖突的處理方法---開放定址法、鏈地址法以及散列表的基本算法及其性能分析。本章概念較為多,所以掌握不太好。
第十章圖及其應(yīng)用。分為圖的概念、圖的存儲(chǔ)結(jié)構(gòu)及其基本算法、圖的遍歷及算法、有向圖的連通性和最小生成樹、圖的最小生成樹、非連通圖的生成森林算法、最短路徑、有向無(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)在查找和排序問題的算法思想上,6種排序方法的性能比較。本章未掌握的為希爾排序、快速排序、歸并排序的時(shí)間復(fù)雜度分析。第三章,對(duì)鏈表掌握還好,對(duì)其數(shù)據(jù)結(jié)構(gòu)進(jìn)行了分析,有循環(huán)鏈表,掌握的不是很好,對(duì)其中一些用法不熟練。第四章堆棧,本章堆棧算法思想較為簡(jiǎn)單,所以能較好掌握,但表達(dá)式計(jì)算問題未掌握好的。第五章的循環(huán)隊(duì)列隊(duì)空、隊(duì)滿的判斷條件問題掌握的不是很好。第六章的重點(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ì)二叉樹掌握較好,其概念,存儲(chǔ),遍歷有很好的掌握。就是對(duì)二叉排序樹有點(diǎn)生疏,它的生成算法不是很會(huì)。第八章樹樹與二叉樹之間的轉(zhuǎn)換,森林與二叉樹的轉(zhuǎn)換算法思想基本掌握。第九章散列的一些知識(shí),沒有深入學(xué)習(xí),大概了解了散列存儲(chǔ)結(jié)構(gòu)散列表,散列函數(shù),沖突的處理方法。第十章了解了圖的逆鄰接表的存儲(chǔ)結(jié)構(gòu),關(guān)鍵路徑求解算法未能掌握好,不能靈活運(yùn)用圖的不同數(shù)據(jù)結(jié)構(gòu)和遍歷算法解決復(fù)雜的應(yīng)用問題。
三、學(xué)習(xí)體會(huì)。
剛剛接觸這門課時(shí),看到課本中全是算法,當(dāng)時(shí)就暈了,因?yàn)槲业腸語(yǔ)言學(xué)的不好,我擔(dān)心會(huì)影響這門課的學(xué)習(xí),后來上課時(shí)老師說學(xué)習(xí)這門課的基礎(chǔ)是c語(yǔ)言,所以我當(dāng)時(shí)就決定一定要好好補(bǔ)補(bǔ),爭(zhēng)取不被拖后腿,在學(xué)習(xí)這門課的期間,也遇到了不少問。但是通過學(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)鍵。在第二遍看課本的過程中,要注重對(duì)算法的掌握。對(duì)于一個(gè)算法,讀一遍可能能讀懂,但不可能完全領(lǐng)會(huì)其中的思想。掌握一個(gè)算法,并不是說將算法背過,而是掌握算法的思想。我們需要的是耐心。每看一遍就會(huì)有這一遍的收獲。讀懂算法之后,自己再默寫算法,寫到不會(huì)的地方,看看課本想想自己為什么沒有想到。對(duì)算法的應(yīng)用上,學(xué)習(xí)算法的目的是利用算法解決實(shí)際問題。會(huì)寫課本上已有的算法之后,可以借其思想進(jìn)行擴(kuò)展,逐步提高編程能力。
四、對(duì)課程教學(xué)的建議。
1、課程課時(shí)較緊,課堂上的練習(xí)時(shí)間較少,講解的東西越多,頭腦有時(shí)就很混亂。
2、感覺上課時(shí)的氣氛不是很好,雖然大部分人都在聽,可是效果不是很好。所以希望老師能在授課中間能穿插一些活躍課堂氛圍的話題,可以是大家都非常關(guān)心的一些內(nèi)容,這樣既讓大家能在思考之余有一個(gè)放松,也能夠提高學(xué)生的學(xué)習(xí)積極性和學(xué)習(xí)效率。
3、學(xué)習(xí)的積極性很重要,有時(shí)候我們花了很長(zhǎng)時(shí)間去寫實(shí)驗(yàn)報(bào)告,也很認(rèn)真的去理解去掌握,可是最后實(shí)驗(yàn)報(bào)告可能就只得了一個(gè)c,抄的人反而得a,這樣的話很容易打擊學(xué)生的積極性,在后面的實(shí)驗(yàn)報(bào)告中沒動(dòng)力再去認(rèn)真寫。所以希望老師能在這方面有所調(diào)整。
4、雖然講課的時(shí)間很緊,但是還是希望老師能在講述知識(shí)點(diǎn)的時(shí)候能運(yùn)用實(shí)際的調(diào)試程序來給我們講解,這樣的話能讓我們對(duì)這些內(nèi)容有更深刻的印象和理解。
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇十一
任務(wù):參加運(yùn)動(dòng)會(huì)有n個(gè)學(xué)校,學(xué)校編號(hào)為1……n。比賽分成m個(gè)男子項(xiàng)目,和w個(gè)女子項(xiàng)目。項(xiàng)目編號(hào)為男子1……m,女子m+1……m+w。不同的項(xiàng)目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學(xué)生自己設(shè)定。(m=10,w=8,n=15)功能要求:
3).可以按學(xué)校編號(hào)、學(xué)校總分、男女團(tuán)體總分排序輸出(快速、基數(shù));
4).可按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目的情況;可按項(xiàng)目編號(hào)查詢?nèi)〉们叭蚯拔迕膶W(xué)校。
界面要求:有合理的提示,每個(gè)功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān)的功能要求。
存儲(chǔ)結(jié)構(gòu):學(xué)生自己根據(jù)系統(tǒng)功能要求自己設(shè)計(jì),但是要求運(yùn)動(dòng)會(huì)的相關(guān)數(shù)據(jù)要存儲(chǔ)在數(shù)據(jù)文件中。
測(cè)試數(shù)據(jù):要求使用。
1、全部合法數(shù)據(jù);
2、迷宮求解。
3、huffman編碼。
4、營(yíng)業(yè)窗口隊(duì)列模擬。
任務(wù):實(shí)現(xiàn)具有n(n=3)個(gè)窗口的現(xiàn)實(shí)隊(duì)列模擬,統(tǒng)計(jì)每人的等待時(shí)間。要求:
1).隨機(jī)產(chǎn)生顧客的到達(dá)時(shí)間和服務(wù)時(shí)間存盤。2).利用存盤數(shù)據(jù)實(shí)現(xiàn)隊(duì)列的插入和刪除。2).當(dāng)有顧客離開時(shí),根據(jù)隊(duì)列長(zhǎng)度調(diào)整隊(duì)尾。3).考慮顧客中途離隊(duì)的情況。4).考慮顧客具有優(yōu)先級(jí)的情況。
5、公交線路提示。
任務(wù):建立南京主要公交線路圖。要求:輸入任意兩站點(diǎn),給出最佳的乘車線路和轉(zhuǎn)車地點(diǎn)。
6、家譜管理系統(tǒng)。
任務(wù):實(shí)現(xiàn)具有下列功能的家譜管理系統(tǒng)功能要求:
1).輸入文件以存放最初家譜中各成員的信息,成員的信息中均應(yīng)包含以下內(nèi)容:姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。
2).實(shí)現(xiàn)數(shù)據(jù)的存盤和讀盤。3).以圖形方式顯示家譜。
4).顯示第n代所有人的信息。
5).按照姓名查詢,輸出成員信息(包括其本人、父親、孩子的信息)。6).按照出生日期查詢成員名單。7).輸入兩人姓名,確定其關(guān)系。8).某成員添加孩子。
9).刪除某成員(若其還有后代,則一并刪除)。10).修改某成員信息。
11).按出生日期對(duì)家譜中所有人排序。
12).打開一家譜時(shí),提示當(dāng)天生日的健在成員。
要求:建立至少30個(gè)成員的數(shù)據(jù),以較為直觀的方式顯示結(jié)果,并提供文稿形式以便檢查。
界面要求:有合理的提示,每個(gè)功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān)的功能要求。
1、全部合法數(shù)據(jù);
7、排序算法比較。
設(shè)計(jì)要求:利用隨機(jī)函數(shù)產(chǎn)生10個(gè)樣本,每個(gè)樣本有50000隨機(jī)整數(shù),利用直接插入排序、折半插入排序,表插入排序,希爾排序,起泡排序、快速排序、選擇排序、堆排序,歸并排序,基數(shù)排序十種排序方法進(jìn)行排序(結(jié)果為由小到大的順序),并統(tǒng)計(jì)每一種排序所耗費(fèi)的平均時(shí)間(統(tǒng)計(jì)為圖表坐標(biāo)形式)。
8、算術(shù)表達(dá)式求值[問題描述]。
一個(gè)算術(shù)表達(dá)式是由操作數(shù)(operand)、運(yùn)算符(operator)和界限符(delimiter)組成的。假設(shè)操作數(shù)是正整數(shù),運(yùn)算符只含加減乘除等四種運(yùn)算符,界限符有左右括號(hào)和表達(dá)式起始、結(jié)束符“#”,如:#(7+15)*(23-28/4)#。引入表達(dá)式起始、結(jié)束符是為了方便。編程利用“算符優(yōu)先法”求算術(shù)表達(dá)式的值。[基本要求](1)從鍵盤讀入一個(gè)合法的算術(shù)表達(dá)式,輸出正確的結(jié)果。(2)顯示輸入序列和棧的變化過程。
9、電子小字典。
基本要求:建立一個(gè)微型電子字典,實(shí)現(xiàn)生詞的加入,單詞的查找、刪除,修改等操作。
10、校園導(dǎo)游程序。
(2)查詢圖中任意兩個(gè)景點(diǎn)間的最短路徑。(3)查詢圖中任意兩個(gè)景點(diǎn)間的所有路徑。
(4)增加、刪除、更新有關(guān)景點(diǎn)和道路的信息。
11、稀疏矩陣相乘。
任務(wù):以三元組形式存儲(chǔ)稀疏矩陣,實(shí)現(xiàn)矩陣相乘。
12、平衡二叉樹。
任務(wù):平衡二叉樹的建立、結(jié)點(diǎn)的插入和刪除。
13、b-樹。
任務(wù):3階b-樹的結(jié)點(diǎn)的插入和刪除。
14、hash表。
任務(wù):以班級(jí)學(xué)生姓名(拼音)為關(guān)鍵字,建立hash涵數(shù),實(shí)現(xiàn)hash表存儲(chǔ),用鏈地址方法解決沖突。
15、??(自選合適的題目)。
成績(jī)?cè)u(píng)定細(xì)則:
1.正確性:程序是否可以運(yùn)行,結(jié)果是否正確(20分)2.功能的完備性:是否實(shí)現(xiàn)要求的所有子功能(20分)。
加分項(xiàng)目:
1.健壯性:異常處理的情況。
3.功能的完善:除要求實(shí)現(xiàn)的功能外,完成了其它的功能,實(shí)現(xiàn)了功能的完善4.界面的設(shè)計(jì):可視化界面,或者交互良好的dos界面5.……(自薦加分項(xiàng)目)。
代碼量要求:=1000行。
代碼總量=課設(shè)題目1代碼量+課設(shè)題目2代碼量……若代碼總量低于1000行,則成績(jī)按比例打折。
編程語(yǔ)言:c或c++語(yǔ)言。
編程環(huán)境:microsoftvisualc++6.0。
時(shí)間安排:上機(jī)時(shí)間安排課程設(shè)計(jì)報(bào)告上交時(shí)間3課程設(shè)計(jì)檢查時(shí)間。
課程設(shè)計(jì)報(bào)告要求:
4.給出實(shí)現(xiàn)的源程序,并在必要的代碼處給出注釋;5.給出測(cè)試數(shù)據(jù)和結(jié)果;
6.給出算法的時(shí)間復(fù)雜度、另外可以提出算法的改進(jìn)方法;
7.給出結(jié)束語(yǔ):說明完成課程設(shè)計(jì)的情況,心得體會(huì);課程設(shè)計(jì)報(bào)告的電子文檔在上機(jī)檢查程序時(shí)一并檢查;書面文檔在指定的時(shí)間內(nèi)上交。
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇十二
本次課程設(shè)計(jì),使我對(duì)《數(shù)據(jù)結(jié)構(gòu)》這門課程有了更深入的理解?!稊?shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性較強(qiáng)的課程,為了學(xué)好這門課程,必須在掌握理論知識(shí)的同時(shí),加強(qiáng)上機(jī)實(shí)踐。
我的課程設(shè)計(jì)題目是線索二叉樹的運(yùn)算。剛開始做這個(gè)程序的時(shí)候,感到完全無(wú)從下手,甚至讓我覺得完成這次程序設(shè)計(jì)根本就是不可能的,于是開始查閱各種資料以及參考文獻(xiàn),之后便開始著手寫程序,寫完運(yùn)行時(shí)有很多問題。特別是實(shí)現(xiàn)線索二叉樹的刪除運(yùn)算時(shí)很多情況沒有考慮周全,經(jīng)常運(yùn)行出現(xiàn)錯(cuò)誤,但通過同學(xué)間的幫助最終基本解決問題。
在本課程設(shè)計(jì)中,我明白了理論與實(shí)際應(yīng)用相結(jié)合的重要性,并提高了自己組織數(shù)據(jù)及編寫大型程序的能力。培養(yǎng)了基本的、良好的程序設(shè)計(jì)技能以及合作能力。這次課程設(shè)計(jì)同樣提高了我的綜合運(yùn)用所學(xué)知識(shí)的能力。并對(duì)vc有了更深入的了解?!稊?shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性很強(qiáng)的課程,上機(jī)實(shí)習(xí)是對(duì)學(xué)生全面綜合素質(zhì)進(jìn)行訓(xùn)練的一種最基本的方法,是與課堂聽講、自學(xué)和練習(xí)相輔相成的、必不可少的一個(gè)教學(xué)環(huán)節(jié)。上機(jī)實(shí)習(xí)一方面能使書本上的知識(shí)變“活”,起到深化理解和靈活掌握教學(xué)內(nèi)容的目的;另一方面,上機(jī)實(shí)習(xí)是對(duì)學(xué)生軟件設(shè)計(jì)的綜合能力的訓(xùn)練,包括問題分析,總體結(jié)構(gòu)設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧的訓(xùn)練。此外,還有更重要的一點(diǎn)是:機(jī)器是比任何教師更嚴(yán)厲的檢查者。因此,在“數(shù)據(jù)結(jié)構(gòu)”的學(xué)習(xí)過程中,必須嚴(yán)格按照老師的要求,主動(dòng)地、積極地、認(rèn)真地做好每一個(gè)實(shí)驗(yàn),以不斷提高自己的編程能力與專業(yè)素質(zhì)。
通過這段時(shí)間的課程設(shè)計(jì),我認(rèn)識(shí)到數(shù)據(jù)結(jié)構(gòu)是一門比較難的課程。需要多花時(shí)間上機(jī)練習(xí)。這次的程序訓(xùn)練培養(yǎng)了我實(shí)際分析問題、編程和動(dòng)手能力,使我掌握了程序設(shè)計(jì)的基本技能,提高了我適應(yīng)實(shí)際,實(shí)踐編程的能力。
總的來說,這次課程設(shè)計(jì)讓我獲益匪淺,對(duì)數(shù)據(jù)結(jié)構(gòu)也有了進(jìn)一步的理解和認(rèn)識(shí)。
這學(xué)期開始兩周時(shí)間是我們自己選題上機(jī)的時(shí)間,這學(xué)期開始兩周時(shí)間是我們自己選題上機(jī)的時(shí)間,雖然上機(jī)時(shí)間只有短短兩個(gè)星期但從中確實(shí)學(xué)到了不少知識(shí)。上機(jī)時(shí)間只有短短兩個(gè)星期但從中確實(shí)學(xué)到了不少知識(shí)。數(shù)據(jù)結(jié)構(gòu)可以說是計(jì)算機(jī)里一門基礎(chǔ)課程,據(jù)結(jié)構(gòu)可以說是計(jì)算機(jī)里一門基礎(chǔ)課程,但我覺得我們一低計(jì)算機(jī)里一門基礎(chǔ)課程定要把基礎(chǔ)學(xué)扎實(shí),定要把基礎(chǔ)學(xué)扎實(shí),然而這次短短的上機(jī)幫我又重新鞏固了c語(yǔ)言知識(shí),讓我的水平又一部的提高。數(shù)據(jù)結(jié)構(gòu)這是一門語(yǔ)言知識(shí)讓我的水平又一部的.提高。
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇十三
本次課程設(shè)計(jì)可以從以下的題目中任選其一,每個(gè)題目基本實(shí)現(xiàn)的要求是:
1、有菜單功能。
2、有讀寫數(shù)據(jù)存盤功能。
3、有數(shù)據(jù)圖形顯示或動(dòng)畫顯示。
成品應(yīng)包括以下內(nèi)容:
1、程序設(shè)計(jì)書(word格式)。
包括程序設(shè)計(jì)目標(biāo)、問題描述、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、源程序清單(要求格式整齊400行以上,要有注釋說明)、軟件說明書(給出軟件如何使用,使用時(shí)的注意事項(xiàng))、測(cè)試報(bào)告(每個(gè)函數(shù)的功能測(cè)試,輸入條件,輸出結(jié)果)和課程設(shè)計(jì)總結(jié)。
2、可執(zhí)行程序源代碼。
二、設(shè)計(jì)題目。
三、上交作業(yè)及成績(jī)?cè)u(píng)定。
1、上交要求。
1)上交課程設(shè)計(jì)報(bào)告和源程序代碼。
2)每小組寫一份設(shè)計(jì)報(bào)告,以電子版形式上交,排版一定要規(guī)范,否則成績(jī)下降一檔。
3)以自己的“2012+專業(yè)+學(xué)號(hào)+姓名”建立文件夾,文件夾內(nèi)容包括程序源碼、設(shè)計(jì)報(bào)告的電子文檔。
4)課程設(shè)計(jì)時(shí)間為二周,要求每人上機(jī)學(xué)時(shí)不低于20學(xué)時(shí)。
2、評(píng)分標(biāo)準(zhǔn)。
根據(jù)完成任務(wù)的情況(必須進(jìn)行系統(tǒng)演示)、課程設(shè)計(jì)報(bào)告書的質(zhì)量和課程設(shè)計(jì)過程中的工作態(tài)度等按照30%、50%、20%加權(quán)綜合打分。成績(jī)?cè)u(píng)定實(shí)行優(yōu)秀、良好、中等、及格和不及格五個(gè)等級(jí)。上機(jī)程序檢查未通過者、無(wú)設(shè)計(jì)報(bào)告者以及嚴(yán)重抄襲他人設(shè)計(jì)者,成績(jī)?yōu)椴患案瘛?/p>
注:
每班分為十幾個(gè)小組,每組2人。
每個(gè)題目每班最多只能有兩小組選做。
每小組之間不得雷同,否則成績(jī)最多及格。
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇十四
1、鞏固和加深了對(duì)數(shù)據(jù)結(jié)構(gòu)的理解,提高綜合運(yùn)用本課程所學(xué)知識(shí)的能力。
2、培養(yǎng)了我選用參考書,查閱手冊(cè)及文獻(xiàn)資料的能力。培養(yǎng)獨(dú)立思考,深入研究,分析問題、解決問題的能力。
3、通過實(shí)際編譯系統(tǒng)的分析設(shè)計(jì)、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計(jì)方法。
4、通過課程設(shè)計(jì),培養(yǎng)了我嚴(yán)肅認(rèn)真的工作作風(fēng),逐步建立正確的生產(chǎn)觀念、經(jīng)濟(jì)觀念和全局觀念。從剛開始得覺得很難,到最后把這個(gè)做出來,付出了很多,也得到了很多,以前總以為自己對(duì)編程的地方還不行,現(xiàn)在,才發(fā)現(xiàn)只要認(rèn)真做,沒有什么不可能。
編程時(shí)要認(rèn)真仔細(xì),出現(xiàn)錯(cuò)誤要及時(shí)找出并改正,(其中對(duì)英語(yǔ)的要求也體現(xiàn)出來了,因?yàn)樗f明錯(cuò)誤的時(shí)候都是英語(yǔ))遇到問題要去查相關(guān)的資料。反復(fù)的調(diào)試程序,最好是多找?guī)讉€(gè)同學(xué)來對(duì)你的程序進(jìn)行調(diào)試并聽其對(duì)你的程序的建議,在他們不知道程序怎么寫的時(shí)候完全以一個(gè)用戶的身份來用對(duì)你的用戶界面做一些建議,正所謂當(dāng)局者迷旁觀者清,把各個(gè)注意的問題要想到;同時(shí)要形成自己的編寫程序與調(diào)試程序的風(fēng)格,從每個(gè)細(xì)節(jié)出發(fā),不放過每個(gè)知識(shí)點(diǎn),注意與理論的聯(lián)系和理論與實(shí)踐的差別。另外,要注意符號(hào)的使用,注意對(duì)字符處理,特別是對(duì)指針的使用很容易出錯(cuò)且調(diào)試過程是不會(huì)報(bào)錯(cuò)的,那么我們要始終注意指針的初始化不管它怎么用以免不必要麻煩。
通過近兩周的學(xué)習(xí)與實(shí)踐,體驗(yàn)了一下離開課堂的學(xué)習(xí),也可以理解為一次實(shí)踐與理論的很好的連接。特別是本組所做的題目都是課堂上所講的例子,在實(shí)行之的過程中并不是那么容易事讓人有一種紙上談兵的體會(huì),正所謂紙上得來終覺淺絕知此事要躬行。實(shí)訓(xùn)過程中讓我們對(duì)懂得的知識(shí)做了進(jìn)一步深入了解,讓我們的理解與記憶更深刻,對(duì)不懂的知識(shí)與不清楚的東西也做了一定的了解,也形成了一定的個(gè)人做事風(fēng)格。
通過這次課程設(shè)計(jì),讓我對(duì)一個(gè)程序的數(shù)據(jù)結(jié)構(gòu)有更全面更進(jìn)一步的認(rèn)識(shí),根據(jù)不同的需求,采用不同的數(shù)據(jù)存儲(chǔ)方式,不一定要用棧,二叉樹等高級(jí)類型,有時(shí)用基本的一維數(shù)組,只要運(yùn)用得當(dāng),也能達(dá)到相同的效果,甚至更佳,就如這次的課程設(shè)計(jì),通過用for的多重循環(huán),舍棄多余的循環(huán),提高了程序的運(yùn)行效率。在編寫這個(gè)程序的過程中,我復(fù)習(xí)了之前學(xué)的基本語(yǔ)法,哈弗曼樹最小路徑的求取,哈弗曼編碼及譯碼的應(yīng)用范圍,程序結(jié)構(gòu)算法等一系列的問題它使我對(duì)數(shù)據(jù)結(jié)構(gòu)改變了看法。在這次設(shè)計(jì)過程中,體現(xiàn)出自己?jiǎn)为?dú)設(shè)計(jì)模具的能力以及綜合運(yùn)用知識(shí)的能力,體會(huì)了學(xué)以致用、突出自己勞動(dòng)成果的喜悅心情,也從中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補(bǔ)。
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇十五
專業(yè)知識(shí),為了完成設(shè)計(jì),在前期工作中,基本都是以學(xué)習(xí)c語(yǔ)言為主,所以浪費(fèi)了很多時(shí)間,比如說在程序中,刪除頂點(diǎn)和增加頂點(diǎn)的模塊中都有和建圖模塊相互重復(fù)的函數(shù),但是由于技術(shù)的原因,只能做一些很累贅的函數(shù),可見在調(diào)用知識(shí)點(diǎn),我沒有掌握好。
不過,有了這次課程設(shè)計(jì)的經(jīng)驗(yàn)和教訓(xùn),我能夠很清楚的對(duì)自己定一個(gè)合適的水平,而且在這次課程設(shè)計(jì)中我學(xué)會(huì)了運(yùn)用兩個(gè)新的函數(shù)sprintf和包涵在#include頭文件中的輸入函數(shù)。因?yàn)檎n程設(shè)計(jì)的題目是求最短路徑,本來是想通過算法的實(shí)現(xiàn)把這個(gè)程序與交通情況相連,但是因?yàn)閬聿患安檎腋鞯氐男畔?,所以,這個(gè)計(jì)劃就沒有實(shí)現(xiàn),我相信在以后有更長(zhǎng)時(shí)間的情況下,我會(huì)做出來的。
1、鞏固和加深了對(duì)數(shù)據(jù)結(jié)構(gòu)的理解,提高綜合運(yùn)用本課程所學(xué)知識(shí)的能力。
2、培養(yǎng)了我選用參考書,查閱手冊(cè)及文獻(xiàn)資料的能力。培養(yǎng)獨(dú)立思考,深入研究,分析問題、解決問題的能力。
3、通過實(shí)際編譯系統(tǒng)的分析設(shè)計(jì)、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計(jì)方法。
4、通過課程設(shè)計(jì),培養(yǎng)了我嚴(yán)肅認(rèn)真的工作作風(fēng),逐步建立正確的生產(chǎn)觀念、經(jīng)濟(jì)觀念和全局觀念。
根據(jù)我在實(shí)習(xí)中遇到得問題,我將在以后的學(xué)習(xí)過程中注意以下幾點(diǎn):
1、認(rèn)真上好專業(yè)實(shí)驗(yàn)課,多在實(shí)踐中鍛煉自己。2、寫程序的過程中要考慮周到,嚴(yán)密。
3、在做設(shè)計(jì)的時(shí)候要有信心,有耐心,切勿浮躁。4、認(rèn)真的學(xué)習(xí)課本知識(shí),掌握課本中的知識(shí)點(diǎn),并在此基礎(chǔ)上學(xué)會(huì)靈活運(yùn)用。
5、在課余時(shí)間里多寫程序,熟練掌握在調(diào)試程序的過程中所遇到的常見錯(cuò)誤,以便能節(jié)省調(diào)試程序的時(shí)間。
這是一門純屬于設(shè)計(jì)的科目,它需用把理論變?yōu)樯蠙C(jī)調(diào)試。在學(xué)習(xí)科目的第一節(jié)課起,李老師就為我們闡述了它的重要性。它對(duì)我們來說具有一定的難度。它是其它編程語(yǔ)言的一門基本學(xué)科。
己找出錯(cuò)誤,并加以改正。
tc里檢查錯(cuò)誤都是用英文來顯示出來的,經(jīng)過了這次課程設(shè)計(jì),現(xiàn)在已經(jīng)可以了解很多錯(cuò)誤在英文里的提示,這對(duì)我來說是一個(gè)突破性的進(jìn)步,眼看著一個(gè)個(gè)錯(cuò)誤通過自己的努力在我眼前消失,覺得很是開心。此次的程序設(shè)計(jì)能夠成功,是我和我的同學(xué)三個(gè)人共同努力作用的結(jié)果。在這一段努力學(xué)習(xí)的過程中,我們的編程設(shè)計(jì)有了明顯的提高。
其實(shí)現(xiàn)在想起來,收獲還真是不少,雖然說以前非常不懂這門語(yǔ)言,在它上面花費(fèi)了好多心血,覺得它很難,是需用花費(fèi)了大量的時(shí)間編寫出來的?,F(xiàn)在真正的明白了一些代碼的應(yīng)用,每個(gè)程序都有一些共同點(diǎn),通用的結(jié)構(gòu),相似的格式。只要努力去學(xué)習(xí),就會(huì)靈活的去應(yīng)用它。
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇十六
課程設(shè)計(jì)的實(shí)質(zhì)是對(duì)人類已有知識(shí)經(jīng)驗(yàn)進(jìn)行有效選擇和重組,其面向未來社會(huì)成員的生存和發(fā)展,并由此展現(xiàn)價(jià)值和地位。下面是本站為大家?guī)淼臄?shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)。
希望可以幫助大家。
這次數(shù)據(jù)庫(kù)課程設(shè)計(jì)用的是microsoftvisualfoxpro6.0,而我們平時(shí)用的microsoftsqlserver20xx,雖然對(duì)vfp完全陌生,但在老師的指引下,我們近乎完美的完成了課程設(shè)計(jì)。當(dāng)然過程是艱辛的。
面對(duì)著完全陌生的操作環(huán)境vfp,許多同學(xué)開始埋怨,要求用sql,用我們學(xué)過的asp等來完成設(shè)計(jì)。但我們慢慢發(fā)現(xiàn)用vfp做課程設(shè)計(jì)其實(shí)很有優(yōu)勢(shì),于是它的這個(gè)優(yōu)勢(shì)激發(fā)了我們?nèi)チ私馑挠@蠋熛葘fp中基本的建數(shù)據(jù)庫(kù),建表以及建表單等向我們演示了一遍,我們也仿照著做了,發(fā)覺并不是很難。但想到這次課程設(shè)計(jì)做的是一套學(xué)生學(xué)籍和成績(jī)管理系統(tǒng),我們又開始茫然了。那天,老師給我們看了一段可以讓文字循環(huán)移動(dòng)的代碼,這使我們產(chǎn)生了好奇心理,有了快速了解它的沖動(dòng)。因?yàn)橛妹嫦驅(qū)ο蟮恼Z(yǔ)言做特效,這還是第一次。下課之后我把那段我們不了解的語(yǔ)言寫的特效代碼發(fā)到了vfp論壇上請(qǐng)人幫忙解釋,最后我們完全理解了那段代碼的意思。
這次課程設(shè)計(jì)我們克服了炎熱的天氣(學(xué)校機(jī)房之前沒裝空調(diào)……后來設(shè)計(jì)完才裝……),也克服對(duì)新知識(shí)的恐懼感以及畏難情緒。我們懂得了團(tuán)隊(duì)合作的重要性,也懂得了團(tuán)隊(duì)中如何交流、如何分工,如何集體討論難點(diǎn)。我們充分利用了網(wǎng)絡(luò)資源(技術(shù)論壇,共享的實(shí)例等)。
我們喜歡這次課程設(shè)計(jì)的感覺,喜歡編程,喜歡團(tuán)隊(duì)交流。
本次課程設(shè)計(jì),使我對(duì)《數(shù)據(jù)結(jié)構(gòu)》這門課程有了更深入的理解。《數(shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性較強(qiáng)的課程,為了學(xué)好這門課程,必須在掌握理論知識(shí)的同時(shí),加強(qiáng)上機(jī)實(shí)踐。
我的課程設(shè)計(jì)題目是線索二叉樹的運(yùn)算。剛開始做這個(gè)程序的時(shí)候,感到完全無(wú)從下手,甚至讓我覺得完成這次程序設(shè)計(jì)根本就是不可能的,于是開始查閱各種資料以及參考文獻(xiàn),之后便開始著手寫程序,寫完運(yùn)行時(shí)有很多問題。特別是實(shí)現(xiàn)線索二叉樹的刪除運(yùn)算時(shí)很多情況沒有考慮周全,經(jīng)常運(yùn)行出現(xiàn)錯(cuò)誤,但通過同學(xué)間的幫助最終基本解決問題。
在本課程設(shè)計(jì)中,我明白了理論與實(shí)際應(yīng)用相結(jié)合的重要性,并提高了自己組織數(shù)據(jù)及編寫大型程序的能力。培養(yǎng)了基本的、良好的程序設(shè)計(jì)技能以及合作能力。這次課程設(shè)計(jì)同樣提高了我的綜合運(yùn)用所學(xué)知識(shí)的能力。并對(duì)vc有了更深入的了解?!稊?shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性很強(qiáng)的課程,上機(jī)實(shí)習(xí)是對(duì)學(xué)生全面綜合素質(zhì)進(jìn)行訓(xùn)練的一種最基本的方法,是與課堂聽講、自學(xué)和練習(xí)相輔相成的、必不可少的一個(gè)教學(xué)環(huán)節(jié)。上機(jī)實(shí)習(xí)一方面能使書本上的知識(shí)變“活”,起到深化理解和靈活掌握教學(xué)內(nèi)容的目的;另一方面,上機(jī)實(shí)習(xí)是對(duì)學(xué)生軟件設(shè)計(jì)的綜合能力的訓(xùn)練,包括問題分析,總體結(jié)構(gòu)設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧的訓(xùn)練。此外,還有更重要的一點(diǎn)是:機(jī)器是比任何教師更嚴(yán)厲的檢查者。因此,在“數(shù)據(jù)結(jié)構(gòu)”的學(xué)習(xí)過程中,必須嚴(yán)格按照老師的要求,主動(dòng)地、積極地、認(rèn)真地做好每一個(gè)實(shí)驗(yàn),以不斷提高自己的編程能力與專業(yè)素質(zhì)。
通過這段時(shí)間的課程設(shè)計(jì),我認(rèn)識(shí)到數(shù)據(jù)結(jié)構(gòu)是一門比較難的課程。需要多花時(shí)間上機(jī)練習(xí)。這次的程序訓(xùn)練培養(yǎng)了我實(shí)際分析問題、編程和動(dòng)手能力,使我掌握了程序設(shè)計(jì)的基本技能,提高了我適應(yīng)實(shí)際,實(shí)踐編程的能力。
總的來說,這次課程設(shè)計(jì)讓我獲益匪淺,對(duì)數(shù)據(jù)結(jié)構(gòu)也有了進(jìn)一步的理解和認(rèn)識(shí)。
通過本次課程設(shè)計(jì),對(duì)圖的概念有了一個(gè)新的認(rèn)識(shí),在學(xué)習(xí)離散數(shù)學(xué)的時(shí)候,總覺得圖是很抽象的東西,但是在學(xué)習(xí)了《數(shù)據(jù)結(jié)構(gòu)與算法》這門課程之后,我慢慢地體會(huì)到了其中的奧妙,圖能夠在計(jì)算機(jī)中存在,首先要捕捉他有哪些具體化、數(shù)字化的信息,比如說權(quán)值、頂點(diǎn)個(gè)數(shù)等,這也就說明了想要把生活中的信息轉(zhuǎn)化到計(jì)算機(jī)中必須用數(shù)字來完整的構(gòu)成一個(gè)信息庫(kù),而圖的存在,又涉及到了頂點(diǎn)之間的聯(lián)系。圖分為有向圖和無(wú)向圖,而無(wú)向圖又是有向圖在權(quán)值雙向相等下的一種特例,如何能在計(jì)算機(jī)中表示一個(gè)雙向權(quán)值不同的圖,這就是一件很巧妙的事情,經(jīng)過了思考和老師同學(xué)的幫助,我用edges[i][j]=up和edges[j][i]=up就能實(shí)現(xiàn)了一個(gè)雙向圖信息的存儲(chǔ)。
對(duì)整個(gè)程序而言,dijkstra算法始終都是核心內(nèi)容,其實(shí)這個(gè)算法在實(shí)際思考中并不難,也許我們誰(shuí)都知道找一個(gè)路徑最短的方法,及從頂點(diǎn)一步一步找最近的路線并與其直接距離相比較,但是,在計(jì)算機(jī)中實(shí)現(xiàn)這么一個(gè)很簡(jiǎn)單的想法就需要涉及到很多專業(yè)知識(shí),為了完成設(shè)計(jì),在前期工作中,基本都是以學(xué)習(xí)c語(yǔ)言為主,所以浪費(fèi)了很多時(shí)間,比如說在程序中,刪除頂點(diǎn)和增加頂點(diǎn)的模塊中都有和建圖模塊相互重復(fù)的函數(shù),但是由于技術(shù)的原因,只能做一些很累贅的函數(shù),可見在調(diào)用知識(shí)點(diǎn),我沒有掌握好。
不過,有了這次課程設(shè)計(jì)的經(jīng)驗(yàn)和教訓(xùn),我能夠很清楚的對(duì)自己定一個(gè)合適的水平,而且在這次課程設(shè)計(jì)中我學(xué)會(huì)了運(yùn)用兩個(gè)新的函數(shù)sprintf和包涵在#include頭文件中的輸入函數(shù)。因?yàn)檎n程設(shè)計(jì)的題目是求最短路徑,本來是想通過算法的實(shí)現(xiàn)把這個(gè)程序與交通情況相連,但是因?yàn)閬聿患安檎腋鞯氐男畔?,所以,這個(gè)計(jì)劃就沒有實(shí)現(xiàn),我相信在以后有更長(zhǎng)時(shí)間的情況下,我會(huì)做出來的。
1、鞏固和加深了對(duì)數(shù)據(jù)結(jié)構(gòu)的理解,提高綜合運(yùn)用本課程所學(xué)知識(shí)的能力。
2、培養(yǎng)了我選用參考書,查閱手冊(cè)及文獻(xiàn)資料的能力。培養(yǎng)獨(dú)立思考,深入研究,分析問題、解決問題的能力。
3、通過實(shí)際編譯系統(tǒng)的分析設(shè)計(jì)、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計(jì)方法。
4、通過課程設(shè)計(jì),培養(yǎng)了我嚴(yán)肅認(rèn)真的工作作風(fēng),逐步建立正確的生產(chǎn)觀念、經(jīng)濟(jì)觀念和全局觀念。
根據(jù)我在實(shí)習(xí)中遇到得問題,我將在以后的學(xué)習(xí)過程中注意以下幾點(diǎn):
1、認(rèn)真上好專業(yè)實(shí)驗(yàn)課,多在實(shí)踐中鍛煉自己。
2、寫程序的過程中要考慮周到,嚴(yán)密。
3、在做設(shè)計(jì)的時(shí)候要有信心,有耐心,切勿浮躁。
4、認(rèn)真的學(xué)習(xí)課本知識(shí),掌握課本中的知識(shí)點(diǎn),并在此基礎(chǔ)上學(xué)會(huì)靈活運(yùn)用。
5、在課余時(shí)間里多寫程序,熟練掌握在調(diào)試程序的過程中所遇到的常見錯(cuò)誤,以便能節(jié)省調(diào)試程序的時(shí)間。
這是一門純屬于設(shè)計(jì)的科目,它需用把理論變?yōu)樯蠙C(jī)調(diào)試。在學(xué)習(xí)科目的第一節(jié)課起,李老師就為我們闡述了它的重要性。它對(duì)我們來說具有一定的難度。它是其它編程語(yǔ)言的一門基本學(xué)科。
剛開始學(xué)的時(shí)候確實(shí)有很多地方我很不理解,每次上課時(shí)老師都會(huì)給我們出不同的設(shè)計(jì)題目,對(duì)于我們一個(gè)初學(xué)者來說,無(wú)疑是一個(gè)具大的挑戰(zhàn),撞了幾次壁之后,我決定靜下心來,仔細(xì)去寫程序。老師會(huì)給我們需要編程的內(nèi)容一些講解,順著老師的思路,來完成自己的設(shè)計(jì),我們可以開始運(yùn)行自己的程序,可是好多處的錯(cuò)誤讓人看的可怕,還看不出到底是哪里出現(xiàn)了錯(cuò)誤,但是程序還是得繼續(xù)下去,我多次請(qǐng)教了老師和同學(xué),逐漸能自己找出錯(cuò)誤,并加以改正。
tc里檢查錯(cuò)誤都是用英文來顯示出來的,經(jīng)過了這次課程設(shè)計(jì),現(xiàn)在已經(jīng)可以了解很多錯(cuò)誤在英文里的提示,這對(duì)我來說是一個(gè)突破性的進(jìn)步,眼看著一個(gè)個(gè)錯(cuò)誤通過自己的努力在我眼前消失,覺得很是開心。此次的程序設(shè)計(jì)能夠成功,是我和我的同學(xué)三個(gè)人共同努力作用的結(jié)果。在這一段努力學(xué)習(xí)的過程中,我們的編程設(shè)計(jì)有了明顯的提高。
其實(shí)現(xiàn)在想起來,收獲還真是不少,雖然說以前非常不懂這門語(yǔ)言,在它上面花費(fèi)了好多心血,覺得它很難,是需用花費(fèi)了大量的時(shí)間編寫出來的。現(xiàn)在真正的明白了一些代碼的應(yīng)用,每個(gè)程序都有一些共同點(diǎn),通用的結(jié)構(gòu),相似的格式。只要努力去學(xué)習(xí),就會(huì)靈活的去應(yīng)用它。
數(shù)據(jù)結(jié)構(gòu)課程總結(jié)篇十七
數(shù)據(jù)的物理結(jié)構(gòu)(physicalstructure)又稱為存儲(chǔ)結(jié)構(gòu),是數(shù)據(jù)在計(jì)算機(jī)中的表示和存儲(chǔ),包括數(shù)據(jù)元素的表示和存儲(chǔ)以及數(shù)據(jù)元素關(guān)系的表示和存儲(chǔ)。
順序存儲(chǔ)結(jié)構(gòu):通過數(shù)據(jù)元素在計(jì)算機(jī)存儲(chǔ)器上的相對(duì)位置來表示數(shù)據(jù)元素的邏輯關(guān)系,一般把邏輯相鄰的數(shù)據(jù)元素存儲(chǔ)在物理位置相鄰的存儲(chǔ)單元中。
c#中的數(shù)組結(jié)構(gòu)就是典型的順序存儲(chǔ)結(jié)構(gòu)方式。
鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu):相鄰元素不需要在物理存儲(chǔ)位置單元相鄰,它們而是通過存儲(chǔ)相鄰數(shù)據(jù)元素的地址來維護(hù)關(guān)系。地址我們通常稱之為為引用(reference)。
備注:此篇文章只是。
總結(jié)。
了數(shù)據(jù)結(jié)構(gòu)方面的一些概念,我們?cè)趯W(xué)習(xí)編程的時(shí)候經(jīng)常說數(shù)據(jù),復(fù)雜度等等這些概念,至于這數(shù)據(jù),復(fù)雜度等等到底是什么東西我們也沒有去研究過,這里總結(jié)了一些知識(shí)點(diǎn)可以幫助大家理解這些概念。
以上c#這篇常用數(shù)據(jù)結(jié)構(gòu)和算法總結(jié)就是本站小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持。
[
【本文地址:http://mlvmservice.com/zuowen/15671627.html】