2016級資料結構結課總結

2021-08-13 16:00:37 字數 2158 閱讀 7525

在賀老師的帶領下,經過半學年的學習我們2016級部6專業完成了資料結構的學習。

眾所周知資料結構是計算機專業的經典專業課,有個公式說得好:程式=資料結構+演算法。我覺得好的演算法是必要的但是合適的資料結構更是重中之重,所以在上這門課之前賀老師就給我們強調了它的重要性,這很重要。這半年不管從知識、學習習慣、行為養成等方面,我都收到了極大的正面影響。

回顧資料結構的整個課程,每種資料結構各不相同,但是在學習路徑上卻可以模擬一下的,老師給我們展示過乙個(以下)

我在學習資料結構的時候也是利用了這張圖,可以說是貫穿每一種資料結構型別,它是起主導方向作用的。我就藉著這張圖對我們半個學期學的資料結構型別做乙個大體總結。

資料結構經典的資料結構有:順序表、棧、佇列、串、陣列、樹結構、圖結構......這些資料結構根據其不同的特點應用在不同的場合,但是他們大致分為兩大類:一類是線性結構(在邏輯上線性排列),第二類是非線性排列(可以有分枝,回環)。接下來是他們的儲存方式,儲存方式的不同也適用於不同的場合:在空間開銷比較大的情況下,可以採用動態開闢記憶體空間的鏈式結構儲存資料結構,而在查詢操作較為多的地方可採用順序結構,直接返回下表的方式來達到目的。總之不同的儲存結構適應不同的開發需求。

確定了儲存方式之後,接下來的操作便是對該資料結構進行演算法庫的建立了,其中經典的演算法有:插入運算、刪除運算、修改運算、查詢運算、排序運算......他們就像是每個資料建立後自動需要完成的工作一樣,基本上演算法庫都是要涵蓋的。

以上是隊資料結構的大體概括,接下來我想分享一下我學完整節資料結構的收穫。

一、邏輯結構為線性的資料結構

1.線性表:線性表分為順序表和煉表,他們也分別代表了兩種儲存結構。其中順序表是一種可以直接用下表進行查詢輸出的方式,它適用於檢視比較多的操作,但是占用的空間是連續的很可能造成空間的浪費,不易於刪除。相對來看鍊錶的儲存結構對空間開銷來講更為和諧,它採用的是隨機開闢記憶體的方式,並且對於增刪操作來說是非常方便用,但是在查詢方便顯得就有些遲鈍。所以同作為順序表的它們更像是黑白顏色,互相彌補,使用於不同的環境。

2.棧與佇列:

i.棧:棧是一種採用先進後出的方式儲存資料的資料結構,一般在一些特殊情況下使用,例如桌球桶等一系列特殊問題。採用的方式一般是鏈式儲存,可以相對靈活的完成一些功能。

ii.佇列:佇列測試採用先進先出的方式儲存資料的資料結構,也是使用在一些特殊情況下。

棧與佇列也是很互補的一對資料結構,所以在此驗證了不同情況下應該採用不同資料結構的說法。

3.陣列與.串:

i.串:字串也就是串,可以看做一種特殊的順序表,特殊在它的資料總是字元型,而且可以採用不同的字元結構體。

這麼看來,陣列與串也是一對歡喜冤家,適用於不同的相對環境。

二、邏輯結構為非線性的資料結構

1.樹結構:樹結構是一種定義為每個節點包含有同型別的子節點的的資料型別,它的用途廣發,孩子節點可以是與他有密切關係的節點,也可以是它在人類邏輯上下屬節點,總是樹結構的建立是我們程式設計路上必不可少的一環。前有哈夫曼數及其哈弗曼編碼,後又二叉樹,二叉搜尋樹b數,紅黑樹,這些在當代程式裡大量而廣泛的使用,乃是重中之重。

2.圖結構:圖結構是眾多節點根據他們相互之間的不同關係建立起來的類似於人類關係網路的資料結構,它的應用程度不遜於樹結構,並且在當前大熱的ai人工智慧、大資料、深度學習、機器學習中佔到了資料儲存的大部分江山。

以上是我全面回顧了一下我們所學的要點知識。屬於objective客觀的陳述事實,而學完之後一些reflective思考反應還是很有必要的。

在學習了眾多資料結構之後,我不由自主的對乙個問題的看法產生了質的改變。從原來拿過題就開始動手做,到現在先分析本質進而考慮資料結構,最後考慮設計演算法,這是我程式設計師之路上的一大步,讓我脫離的初級菜鳥程式設計師的影子逐漸進化成乙個高階菜鳥程式設計師,哈哈!言歸正傳,我們對於資料結構的探索不能只停留在書本上,因為程式設計的世界裡是沒有標準模板的,在瀏覽了較多的資料結構後,最終的目的是讓我們學會自己根據不同的需要造資料結構來完成我們的需求。這也是我一直在努力的方向。

我還想interpertive一下我半學年的成績:首先是基本的結構已經熟練掌握,對哈夫曼數等一系列基本的二叉樹已經掌握,但是對於bst二叉搜尋樹,及其衍生的b樹,紅黑樹還有待掌握,雖然老師沒講,但我認為比那些基礎的更加重要。

最後的decisional是希望能在大二寒假完成對資料結構的全部掌握,還有一些基本演算法的掌握,爭取寫一手漂亮的**。

2016級資料結構課程期末總結

o 回顧這乙個學期所學的知識,我們學到了很多資料儲存型別和運算方法。資料的邏輯結構包括線性結構和非線性結構,資料 的儲存結構包括順序結構 鏈式結構 索引結構 雜湊結構,其中我們在課堂上重點學習了前兩種,資料結構的運算有最基本的 增刪改查和最後學到的好幾種排序。1.第二章線性表包括了順序表和煉表,順序...

資料結構課設

10 多種基本內排序方法的實現 問題描述 設計乙個合成的排序程式。可供排序的方法是 插入排序 快速排序 歸併排序 堆排序。要求程式具有 1 顯示排序結果.2 提供最好和最壞情況下對比計時的功能。3 提供在不同陣列元素的個數情況 當n分別等於100,1000,5000,20000時 下各種排序演算法的...

FHQ Treap小結(神級資料結構!)

首先說一下,這個東西可以搞一切bst,treap,splay所能搞的東西 今天心血來潮,想搞一搞平衡樹,思路比較好理解,但是 量。一看就頭大,然後,在洛谷翻題解的時候無意間看到了遠航之曲發的一篇非常短小精悍的題解,於是就學了一下 這個東西的學名應該是叫做fhq treap,應該是treap的強化版。...