【完整目录】每天5分钟用C#学习数据结构
【基礎(chǔ)知識】|?作者?/ Edison Zhou
這是恰童鞋騷年的第250篇原創(chuàng)內(nèi)容
不知不覺,每天5分鐘學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)就更新完了,本篇將該系列所有文章整理起來作為一個目錄,方便你的快速閱讀。
1線性表
線性表是最簡單也是在編程當(dāng)中使用最多的一種數(shù)據(jù)結(jié)構(gòu)。例如,英文字母表(A,B,C,D...,Z)就是一個線性表,表中的每一個英文字母都是一個數(shù)據(jù)元素;又如,成績單也是一個線性表,表中的每一行是一個數(shù)據(jù)元素,每個數(shù)據(jù)元素又由學(xué)號、姓名、成績等數(shù)據(jù)項組成。順序表和鏈表作為線性表的兩種重要的存在形式,它們是堆棧、隊列、樹、圖等數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)基礎(chǔ)。
(1)線性表基礎(chǔ)
(2)順序表
(3)單鏈表 Part 1
(4)單鏈表?Part 2
(5)雙鏈表 Part 1
(6)雙鏈表 Part 2
(7)循環(huán)鏈表 Part 1
(8)循環(huán)鏈表 Part 2
(9)約瑟夫問題
2棧和隊列
現(xiàn)實生活中的事情往往都能總結(jié)歸納成一定的數(shù)據(jù)結(jié)構(gòu),例如餐館中餐盤的堆疊和使用,羽毛球筒里裝的羽毛球等都是典型的棧結(jié)構(gòu)。而在.NET中,值類型在線程棧上進行分配,引用類型在托管堆上進行分配。棧和隊列都是常用的數(shù)據(jù)結(jié)構(gòu),它們的邏輯結(jié)構(gòu)與線性表相同,不同之處則在于操作受某種特殊限制。因此,棧和隊列也被稱為操作受限的線性表。
(1)棧 Part 1
(2)棧 Part 2
(3)隊列 Part 1
(4)隊列 Part 2
(5)隊列 Part 3
3二叉樹
樹和之前學(xué)習(xí)的一對一關(guān)系的線性結(jié)構(gòu)已經(jīng)有了不同,樹是一對多的關(guān)系了。樹在計算機中有著廣泛的應(yīng)用,甚至在計算機的日常使用中,也可以看到樹形結(jié)構(gòu)的身影,如Windows資源管理器和應(yīng)用程序的菜單都屬于樹形結(jié)構(gòu)。
(1)二叉樹 Part 1
(2)二叉樹 Part 2
(3)二叉樹 Part 3
(4)二叉樹 Part 4
(5)二叉樹 Part 5
4圖
線性表中的元素是“一對一”的關(guān)系,樹中的元素是“一對多”的關(guān)系,本章所述的圖結(jié)構(gòu)中的元素則是“多對多”的關(guān)系。圖(Graph)是一種復(fù)雜的非線性結(jié)構(gòu),在圖結(jié)構(gòu)中,每個元素都可以有零個或多個前驅(qū),也可以有零個或多個后繼,也就是說,元素之間的關(guān)系是任意的。現(xiàn)實生活中的很多事物都可以抽象為圖,例如世界各地接入Internet的計算機通過網(wǎng)線連接在一起,各個城市和城市之間的鐵軌等等。
(1)圖 Part 1
(2)圖 Part 2
(3)圖 Part 3
(4)圖 Part 4
(5)圖 Part 5
(6)圖 Part 6
(7)圖 Part?7
(8)圖 Part 8
(9)圖 Part 9
(10)圖 Part 10
5查找
只要你打開電腦,就會涉及到查找技術(shù)。如炒股軟件中查股票信息、硬盤文件中找照片、在光盤中搜DVD,甚至玩游戲時在內(nèi)存中查找攻擊力、魅力值等數(shù)據(jù)修改用來作弊等,都要涉及到查找。當(dāng)然,在互聯(lián)網(wǎng)上查找信息就更加是家常便飯。查找是計算機應(yīng)用中最常用的操作之一,也是許多程序中最耗時的一部分,查找方法的優(yōu)劣對于系統(tǒng)的運行效率影響極大。
(1)查找 Part 1
(2)查找 Part 2
(3)查找 Part 3
(4)查找 Part 4
(5)查找 Part 5
6排序
排序(Sorting)是計算機內(nèi)經(jīng)常進行的一種操作,其目的是將一組“無序”的記錄序列調(diào)整為按關(guān)鍵字“有序”的記錄序列。如何進行排序,特別是高效率地進行排序是計算機工作者學(xué)習(xí)和研究的重要課題之一。排序有內(nèi)部排序和外部排序之分,若整個排序過程不需要訪問外存便能完成,則稱此類排序為內(nèi)部排序,反之則為外部排序。下面會主要介紹插入排序、交換排序、選擇排序和歸并排序這幾種內(nèi)部排序方法。
(1)插入類排序
(2)交換類排序
(3)選擇類排序
(4)歸并類排序
7小結(jié)
到此為止,每天5分鐘用C#學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)這個系列文章就到此結(jié)束了,不知道在這么多個工作日的清晨是否對你產(chǎn)生了幫助。當(dāng)然,無論是這些日子里的鼓勵還是批評,我都虛心接受。
接下來,我們會通過《劍指Offer》中的一些經(jīng)典題目來復(fù)習(xí)我們所學(xué)的數(shù)據(jù)結(jié)構(gòu)知識,當(dāng)然必須是C#代碼實現(xiàn),有興趣的童鞋可以繼續(xù)關(guān)注。
往期精彩回顧
.NET Core?微服務(wù)學(xué)習(xí)實踐系列文章
.NET Core on K8s 學(xué)習(xí)實踐系列文章
如果本文對你有用,
不妨點個“在看”或者轉(zhuǎn)發(fā)朋友圈
????點擊閱讀原文,獲取文章源碼
總結(jié)
以上是生活随笔為你收集整理的【完整目录】每天5分钟用C#学习数据结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将数据从 SQL Server 导入 A
- 下一篇: C#9.0 终于来了,带你一起解读 ni