對(duì)于信息類專業(yè)的學(xué)生而言粱玲,數(shù)據(jù)結(jié)構(gòu)與算法是一門必修的課程手趣。只有學(xué)好這門課程,熟練掌握線性表虹菲、棧睡雇、隊(duì)列萌衬、樹、圖等基本結(jié)構(gòu)它抱,以及在這些結(jié)構(gòu)上的各種算法秕豫,才能利用計(jì)算機(jī)去解決實(shí)際問(wèn)題。
如何學(xué)好這門課程呢观蓄,給大家提供一種思考方式 —— 「整體思維」混移。
什么是整體思維呢?
它基于兩條假設(shè):
- 一切事物在底層上都是互相聯(lián)系的侮穿;
- 整體能提供比個(gè)體本身更多的信息歌径;
第一條很好理解,第二條是什么意思呢亲茅?
舉個(gè)簡(jiǎn)單的例子:你要買一件沙發(fā)回铛,除了考慮它的材質(zhì)、舒適度克锣、耐用性茵肃、價(jià)格之外,還要考慮什么袭祟?它跟家里的風(fēng)格是否搭配验残,對(duì)吧。
如果你整個(gè)房子是現(xiàn)代簡(jiǎn)約風(fēng)格榕酒,卻放了一個(gè)實(shí)木紅木沙發(fā)胚膊,那顯然非常奇怪。
這就是「整體性」想鹰。沙發(fā)這個(gè)個(gè)體紊婉,放進(jìn)整體的語(yǔ)境中,就被賦予了新的信息辑舷。
簡(jiǎn)而言之:我們永遠(yuǎn)不能孤立地考慮問(wèn)題和事物喻犁,而應(yīng)該不斷地追問(wèn)自己:
- 它的背景和場(chǎng)景是什么?
- 它為什么會(huì)出現(xiàn)何缓?
- 它的出現(xiàn)帶來(lái)了什么肢础、導(dǎo)致了什么?
也就是把我們學(xué)習(xí)的每種結(jié)構(gòu)以及每種結(jié)構(gòu)的實(shí)現(xiàn)碌廓,跟我們已知的系統(tǒng)传轰、體系,聯(lián)系起來(lái)(比如我們學(xué)過(guò)的各類計(jì)算機(jī)語(yǔ)言谷婆、離散數(shù)學(xué)慨蛙、運(yùn)籌學(xué)等等)辽聊,從整體的角度去學(xué)這些知識(shí)點(diǎn)。這樣就會(huì)讓各個(gè)知識(shí)點(diǎn)連接成知識(shí)網(wǎng)期贫,逐漸形成自己的知識(shí)體系跟匆,作為武器,為我所用通砍。
目錄
第1章 緒論
- 1.1 數(shù)據(jù)結(jié)構(gòu)
- <u>學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的必要性</u>
- <u>基本概念和術(shù)語(yǔ)</u>
- 1.2 算法
- <u>算法的特性</u>
- <u>算法的評(píng)價(jià)標(biāo)準(zhǔn)</u>
- <u>算法的時(shí)間復(fù)雜度</u>
- 1.3 數(shù)學(xué)預(yù)備知識(shí)
- <u>集合</u>
- <u>常用的數(shù)學(xué)術(shù)語(yǔ)</u>
- <u>對(duì)數(shù)</u>
- <u>遞歸</u>
- 1.4 C#預(yù)備知識(shí)
- <u>接口</u>
- <u>泛型編程</u>
- 本章小結(jié)
- 習(xí)題一
第2章 線性表
- 2.1 線性表的邏輯結(jié)構(gòu)
- <u>線性表的定義</u>
- <u>線性表的基本操作</u>
- 2.2 順序表
- <u>順序表的定義</u>
- <u>順序表的基本操作實(shí)現(xiàn)</u>
- <u>順序表應(yīng)用舉例</u>
- 2.3 單鏈表
- <u>單鏈表的定義</u>
- <u>單鏈表的基本操作實(shí)現(xiàn)</u>
- <u>單鏈表應(yīng)用舉例</u>
- 2.4 其他鏈表
- <u>雙向鏈表</u>
- <u>循環(huán)鏈表</u>
- 2.5 C#中的線性表
- 本章小結(jié)
- 習(xí)題二
第3章 棧和隊(duì)列
- 3.1 棧
- <u>棧的定義及基本運(yùn)算</u>
- <u>棧的存儲(chǔ)和運(yùn)算實(shí)現(xiàn)</u>
- <u>棧的應(yīng)用舉例</u>
- <u>C#中的棧</u>
- 3.2 隊(duì)列
- <u>隊(duì)列的定義及基本運(yùn)算</u>
- <u>隊(duì)列的存儲(chǔ)和運(yùn)算實(shí)現(xiàn)</u>
- <u>隊(duì)列的應(yīng)用舉例</u>
- <u>C# 中的隊(duì)列</u>
- 本章小結(jié)
- 習(xí)題三
第4章 串和數(shù)組
- 4.1 串
- <u>串的基本概念</u>
- <u>串的存儲(chǔ)及類定義</u>
- <u>串的基本操作的實(shí)現(xiàn)</u>
- <u>C#中的串</u>
- 4.2 數(shù)組
- <u>數(shù)組的邏輯結(jié)構(gòu)</u>
- <u>數(shù)組的內(nèi)存映象</u>
- <u>C#中的數(shù)組</u>
- 本章小結(jié)
- 習(xí)題四
第5章 樹和二叉樹
- 5.1 樹
- <u>樹的定義</u>
- <u>樹的相關(guān)術(shù)語(yǔ)</u>
- <u>樹的邏輯表示</u>
- <u>樹的基本操作</u>
- 5.2 二叉樹
- <u>二叉樹的定義</u>
- <u>二叉樹的性質(zhì)</u>
- <u>二叉樹的存儲(chǔ)結(jié)構(gòu)</u>
- <u>二叉鏈表存儲(chǔ)結(jié)構(gòu)的類實(shí)現(xiàn)</u>
- <u>二叉樹的遍歷</u>
- 5.3 樹與森林
- <u>樹玛臂、森林與二叉樹的轉(zhuǎn)換</u>
- <u>樹和森林的遍歷</u>
- 5.4 哈夫曼樹
- <u>哈夫曼樹的基本概念</u>
- <u>哈夫曼樹類的實(shí)現(xiàn)</u>
- <u>哈夫曼編碼</u>
- 5.5 應(yīng)用舉例
- 5.6 C#中的樹
- 本章小結(jié)
- 習(xí)題五
第6章 圖
- 6.1 圖的基本概念
- <u>圖的定義</u>
- <u>圖的基本術(shù)語(yǔ)</u>
- <u>圖的基本操作</u>
- 6.2 圖的存儲(chǔ)結(jié)構(gòu)
- <u>鄰接矩陣</u>
- <u>鄰接表</u>
- 6.3 圖的遍歷
- <u>深度優(yōu)先遍歷</u>
- <u>廣度優(yōu)先遍歷</u>
- 6.4 圖的應(yīng)用
- <u>最小生成樹</u>
- <u>最短路徑</u>
- <u>拓?fù)渑判?lt;/u>
- 本章小結(jié)
- 習(xí)題六
第7章 排序
- 7.1 基本概念
- 7.2 簡(jiǎn)單排序方法
- <u>直接插入排序</u>
- <u>冒泡排序</u>
- <u>簡(jiǎn)單選擇排序</u>
- 7.3 快速排序
- 7.4 堆排序
- 7.5 歸并排序
- 7.6 基數(shù)排序
- <u>多關(guān)鍵碼排序</u>
- <u>鏈?zhǔn)交鶖?shù)排序</u>
- 7.7 各種排序方法的比較與討論
- 7.8 C#中排序方法
- 本章小結(jié)
- 習(xí)題七
第8章 查找
- 8.1 基本概念和術(shù)語(yǔ)
- 8.2 靜態(tài)查找表
- <u>順序查找</u>
- <u>有序表的折半查找</u>
- <u>索引查找</u>
- 8.3 動(dòng)態(tài)查找表
- 8.4 哈希表
- <u>哈希表的基本概念</u>
- <u>常用的哈希函數(shù)構(gòu)造方法</u>
- <u>處理沖突的方法</u>
- 8.5 C#中的查找方法
- 本章小結(jié)
- 習(xí)題八
參考文獻(xiàn)
推薦閱讀
- 資料分享:送你一本《大話設(shè)計(jì)模式》電子書
- 資料分享:送你一本《C#設(shè)計(jì)模式》電子書
- 資料分享:送你一本《Python編程:從入門到實(shí)踐》電子書
- 資料分享:送你一本《用Python寫網(wǎng)絡(luò)爬蟲》的電子書
下載《數(shù)據(jù)結(jié)構(gòu)(C#語(yǔ)言版)》
關(guān)注公眾號(hào),后臺(tái)回復(fù)
20190320