資料結構與演算法課程學習總結

來源:文萃谷 3.19W

總結是指對某一階段的工作、學習或思想中的經驗或情況進行分析研究,做出帶有規律性結論的書面材料,它可以提升我們發現問題的能力,讓我們好好寫一份總結吧。那麼總結有什麼格式呢?下面是小編為大家收集的資料結構與演算法課程學習總結,供大家參考借鑑,希望可以幫助到有需要的朋友。

資料結構與演算法課程學習總結

資料結構與演算法課程學習總結1

一、資料結構與演算法知識點

《資料結構與演算法》這本書共有十一個章節。從第一章的資料結構和演算法的引入,介紹了資料和資料型別、資料結構、演算法描述工具、演算法和演算法評價四個方面的知識。第二章則介紹了順序表及其應用的相關知識。從順序表的基本概念開始,分別介紹了順序表基本演算法、順序表基本演算法效能分析、順序表的應用。順序表應用又涉及多方面,有查詢問題、排序問題、字元處理問題。其中查詢分簡單順序查詢,有序表的二分查詢,分塊查詢三種。排序中分插入排序(直接插入排序、希爾排序)、交換排序(氣泡排序、快速排序)、選擇排序(直接選擇排序)、歸併排序。第三章連結串列及其應用,分為連結串列的基本概念、單鏈表的資料結構、單鏈表的基本演算法、迴圈連結串列、連結串列的應用。第四章堆疊及其應用,分為堆疊堆的基本概念、順序棧及其基本演算法、鏈棧及其基本演算法、堆疊的應用。第五章佇列及其應用,分為佇列的基本概念、順序佇列及其基本演算法、鏈佇列及其基本演算法、基數排序問題。第六章特殊矩陣和廣義表及其應用,分為陣列與矩陣,特殊矩陣的壓縮儲存、矩陣的應用例項、廣義表。第七章二叉樹及其應用。分為二叉樹的基本概念、二叉樹儲存結構、二叉樹的遍歷演算法、線索二叉樹、二叉樹的應用(基本演算法、哈夫曼樹、二叉排序樹、堆和堆排序)。第八章樹和森林及其應用。分為樹和森林的基本概念,樹的儲存結構、樹的基本演算法及效能分析、樹的應用(B樹)。第九章雜湊結構及其應用。分為雜湊結構的概念等。著重學習了散列表、雜湊函式、衝突處理方法(開放定址法和鏈地址法)。第九章圖及其應用。分為圖的概念、圖的儲存結構及其基本演算法、圖的遍歷及演算法、有向圖的連通性和最小生成樹、圖的最小生成樹、非連通圖的生成森林演算法、最短路徑、有向無環圖及其應用。第十一章演算法效能分析和演算法設計方法簡介。

二、對各知識點的掌握情況

綜合以上知識點,我對自我學習成果作如下總結:對於第一章對資料結構的概念理解頗深,大概是每次都要談論到吧。對演算法的時間效能,空間效能基本瞭解。這些在後面的章節都會有運用。第二章順序表較為清晰。如何去建一個順序表,順序表的一些基本演算法都可以很好運用。在順序表應用中對二分查詢映象深刻。對於排序能瞭解其演算法思想。對字串的處理應用的較少,沒有深入瞭解。第三章連結串列的知識,由於連結串列在上學期就有所接觸,老師也強調其作用,對連結串列掌握還好,但在第三章中又學習到了新的內容,對其資料結構進行了分析,增加了迴圈連結串列,對知識進行補充。第四章堆疊,堆疊是一個運算受限的線性表,可對比順序表的學習,不同的是還有鏈棧,這部分感覺是全書最容易的部分了。第五章佇列是接著堆疊之後的又一個運算受限制的線性表,感覺和堆疊一樣簡單。第六章矩陣和廣義表是我的弱項,在這部分的學習過程中沒有用心學,現在正在深入研究。接下來的第七章第八章是全書的重點,特別是第七章二叉樹,所以學習的重心也偏向這兩章。對二叉樹掌握較好,其概念,儲存,遍歷有很好的掌握。就是對二叉排序樹有點生疏,它的生成演算法不是很會。第八章樹和森林,樹與二叉樹之間的轉換,森林與二叉樹的轉換演算法思想基本掌握。第九章雜湊的一些知識,沒有深入學習,大概瞭解了雜湊儲存結構散列表,雜湊函式,衝突的處理方法。第十章感覺是很難的一章,知識點多,能夠畫有向圖和無向圖的鄰接矩陣,鄰接表。圖的深度遍歷和廣度遍歷,但是其演算法只是能讀懂。

三、學習體會

開學伊始,聽說要學資料結構與演算法,而且考試通過率極低,就帶著這樣恐懼的心理開始學習了。通過學習資料結構與演算法讓我對程式有了新的認識。“資料結構和演算法”課程主要學習在軟體開發中涉及到的各種常用資料結構及其常用演算法,在此基礎上,學習如何利用資料結構和演算法解決一些基本的應用問題,通過學習我瞭解了相關領域的基礎知識和基本應用。知道了學習一種資料結構必須掌握該資料結構的定義,其包括邏輯結構,儲存結構和基本演算法還有基本應用知識。對於一個應用程式,不是它能執行,能顯示結果就行了,還要考慮它的各方面的效能,時間效能,空間效能。以此節約空間和時間。給定一個程式首先要分析其應有的資料結構。怎麼儲存,怎麼效能會比較好。“資料結構與演算法”是一門很有用的科目,可是也是很令人頭疼的學科,這也鍛鍊了我們迎難而上的毅力。當然學習資料結構與演算法是建立在學習好計算機語言的基礎上的,學習程式設計是枯燥無味的,學據結構給我帶來更多的是思考的東西。

課程結束我總結了學習過程中遇到的困難,有時寫不出合條件的演算法,在寫實驗報告時,有時就是將書上的源程式搬上去,對程式進行一些修改。針對這一情況我會慢慢改正。多加思考。

四、對課程教學的建議

1、課程課時較緊,課堂上的練習時間較少,講解的東西越多,頭腦有時就很混亂。

2、長期的ppt教學,會使產生疲勞,稍不留神,思維開了小差,就跟不上了。

可以適當結合ppt和例題講解。通過課堂的習題講解,加深對知識點的掌握,同時對各知識點的運用有一個更為直觀和具體的認識。

資料結構與演算法課程學習總結2

資料結構與演算法是計算機程式設計的重要理論技術基礎,它不僅是電腦科學的核心課程,而且也已經成為其他理工專業的熱門選修課。隨著高階語言的發展,資料結構在計算機的研究和應用中已展現出強大的生命力,它兼顧了諸多高階語言的特點,是一種典型的結構化程式設計語言,它處理能力強,使用靈活方便,應用面廣,具有良好的可移植性。通過學習,先報告如下:

一、資料結構與演算法知識點

本學期學的《資料結構與演算法》這本書共有十一個章節:

第一章的內容主要包括有關資料、資料型別、資料結構、演算法、演算法實現、C語言使用中相關問題和演算法分析等基本概念和相關知識。其中重點式資料、資料型別、資料結構、演算法等概念;C語言中則介紹了指標、結構變數、函式、遞迴、動態儲存分配、檔案操作、程式測試與除錯問題等內容。

第二章主要介紹的是線性邏輯結構的資料在順序儲存方法下的資料結構順序表(包括順序串)的概念、資料型別、資料結構、基本運算及其相關應用。其中重點一是順序表的定義、資料型別、資料結構、基本運算和效能分析等概念和相關知識。二是順序表的應用、包括查詢問題(簡單順序查詢、二分查詢、分塊查詢)、排序問題(直接插入排序、希爾排序、氣泡排序、快速排序、直接選擇排序、歸併排序)、字元處理問題(模式匹配)等內容。本章重點和難點在查詢和排序問題的'演算法思想上,6種排序方法的效能比較。

第三章主要介紹的是線性邏輯結構的資料在連結儲存方法下資料結構連結串列的相關知識。主要是單鏈表、迴圈連結串列的資料型別結構、資料結構、基本運算及其實現以及連結串列的相關應用問題,在此基礎上介紹了鏈串的相關知識。在應用方面有多項式的相加問題、歸併問題、箱子排序問題和連結串列在字元處理方面的應用問題等。本章未完全掌握的是迴圈連結串列的演算法問題和C的描述。

第四章介紹在兩種不同的儲存結構下設計的堆疊,即順序棧和鏈棧的相關知識,瞭解堆疊的相關應用,掌握應用堆疊來解決實際問題的思想及方法。本章主要內容是順序棧和鏈棧的概念、資料型別、資料結構定義和基本運算演算法及其效能分析。本章堆疊演算法思想較為簡單,所以能較好掌握。

第五章主要介紹順序儲存和連結儲存方法下的兩種佇列、順序(迴圈)佇列和鏈佇列的資料結構、基本運算及其效能分析以及應用。順序佇列(重點是迴圈佇列)和鏈佇列的概念、資料型別描述、資料結構和基本運算演算法及其效能分析等。本章同堆疊有點類似,演算法思想較為簡單,所以能較好掌握;但難點重在迴圈佇列隊空、隊滿的判斷條件問題。第六章“特殊矩陣、廣義表及其應用”將學習陣列、稀疏矩陣和廣義表的基本概念,幾種特殊矩陣的儲存結構及其基本運算,在此基礎上學習特殊矩陣的計算演算法與廣義表應用等相關問題。本章的重點是相關資料結構的儲存結構及其基本運算演算法。掌握了特殊矩陣的壓縮儲存結構,在該儲存結構下元素的定位方法,理解了稀疏矩陣的計算和廣義表的儲存結構。

第七章“二叉樹及其應用”的知識結構主要是:非線性結構資料二叉樹的定義、性質、邏輯結構、儲存結構及其各種基本運算演算法,包括二叉樹的建立、遍歷、線索化等演算法。在此基礎上,介紹二叉樹的一些應用問題,包括哈夫曼編碼問題、(平衡)二叉排序樹問題和堆排序問題等。

第八章“樹和森林及其應用”介紹樹和森林的資料結構、基本演算法及其效能分析,樹和森林與二叉樹之間的轉換演算法等,在此基礎上介紹樹的應用---B-樹,應用B-樹來實現資料元素的動態查詢。本章基本掌握樹和森林的概念和性質、資料結構、樹的基本演算法及效能分析,樹和二叉樹間的轉換及其演算法,並用應用B-樹來實現資料元素的動態查詢未能掌握好。

第九章“雜湊結構及其應用”是邏輯結構“集合型”的資料元素在雜湊儲存方法下的資料結構及其應用知識內容。主要介紹雜湊函式的概念、雜湊結構的概念、雜湊儲存結構的概念---散列表、雜湊函式和散列表中解決衝突的處理方法---開放定址法、鏈地址法以及散列表的基本演算法及其效能分析。本章概念較為多,所以掌握不太好。

第十章“圖及其應用”是邏輯結構為“圖形”的資料結構及其應用知識內容,主要介紹圖的定義和基礎知識,圖的2種儲存結構。圖的基本演算法以及圖的典型應用問題(最小生成樹、最短路徑、拓撲排序和關鍵路徑等)。

二、對各知識點的掌握情況

我對各知識點的掌握情況總結如下:

第一章不太難,能基本掌握。但關係全書的時間效能分析有些未能全部掌握。第二章本章重點和難點在查詢和排序問題的演算法思想上,6種排序方法的效能比較。本章未掌握的為希爾排序、快速排序、歸併排序的時間複雜度分析。第三章,對連結串列掌握還好,對其資料結構進行了分析,有迴圈連結串列,掌握的不是很好,對其中一些用法不熟練。第四章堆疊,本章堆疊演算法思想較為簡單,所以能較好掌握,但表示式計算問題未掌握好的。第五章的迴圈佇列隊空、隊滿的判斷條件問題掌握的不是很好。第六章的重點是相關資料結構的儲存結構及其基本運算演算法。掌握了特殊矩陣的壓縮儲存結構,在該儲存結構下元素的定位方法,理解了稀疏矩陣的計算和廣義表的儲存結構。第七章對二叉樹掌握較好,其概念,儲存,遍歷有很好的掌握。就是對二叉排序樹有點生疏,它的生成演算法不是很會。第八章樹樹與二叉樹之間的轉換,森林與二叉樹的轉換演算法思想基本掌握。第九章雜湊的一些知識,沒有深入學習,大概瞭解了雜湊儲存結構散列表,雜湊函式,衝突的處理方法。第十章瞭解了圖的逆鄰接表的儲存結構,關鍵路徑求解演算法未能掌握好,不能靈活運用圖的不同資料結構和遍歷演算法解決複雜的應用問題。

三、學習體會

通過學習資料結構與演算法,讓我對程式有了新的認識,也有了更深的理解。同時,也讓我認識到,不管學習什麼,概念是基礎,所有的知識框架都是建立在基礎概念之上的,所以,第一遍看課本要將概念熟記於心,然後構建知識框架。並且,對演算法的學習是學習資料結構的關鍵。在第二遍看課本的過程中,要注重對演算法的掌握。對於一個演算法,讀一遍可能能讀懂,但不可能完全領會其中的思想。掌握一個演算法,並不是說將演算法背過,而是掌握演算法的思想。我們需要的是耐心。每看一遍就會有這一遍的收穫。讀懂演算法之後,自己再默寫演算法,寫到不會的地方,看看課本想想自己為什麼沒有想到。對演算法的應用上,學習演算法的目的是利用演算法解決實際問題。會寫課本上已有的演算法之後,可以借其思想進行擴充套件,逐步提高程式設計能力。

四、對課程教學的建議

1、感覺上課時的氣氛不是很好,雖然大部分人都在聽,可是效果不是很好。所以希望老師能在授課中間能穿插一些活躍課堂氛圍的話題,可以是大家都非常關心的一些內容,這樣既讓大家能在思考之餘有一個放鬆,也能夠提高學生的學習積極性和學習效率。

2、學習的積極性很重要,有時候我們花了很長時間去寫實驗報告,也很認真的去理解去掌握,可是最後實驗報告可能就只得了一個C,抄的人反而得A,這樣的話很容易打擊學生的積極性,在後面的實驗報告中沒動力再去認真寫。所以希望老師能在這方面有所調整。3、雖然講課的時間很緊,但是還是希望老師能在講述知識點的時候能運用實際的除錯程式來給我們講解,這樣的話能讓我們對這些內容有更深刻的印象和理解。

熱門標籤