這是一個科技發達、訊息快速傳遞的世界。本書以C#程式語言為實作對象,以圖像解說呈現資料結構的概念與運作,藉由C#程式語言的特色和語法來豐富資料結構的內涵,是學習資料結構最佳入門書。
全書重要主題如下:
●以淺顯、易懂的C#語言演示敘述、語法
●認識C#程式語言OOP特有屬性和存取子,定義方法採「運算式主體定義」
●使用C#程式語言詮釋、解說資料結構的多樣性,把理論化繁為簡,讓學習者能全盤掌握
●範例皆有完整程式碼,學與做相互並行,不只能輕鬆上手,更能加快學習成效
●搭配一目了然的圖像演示,系統化呈現資料,知識內涵以表格條理化,按部就班的圖解步驟,讓程式範例說明立體化,學習者跟上就能學會
●各章節末皆有針對內容的課後習作,包含測驗和實作題型,規劃自己的學習進 度,練習或加強學習知識的範疇
期能把握最嚴謹的態度,輔以最精要的表達方式,降低閱讀的壓力,筆者深信本書能讓學習者對資料結構有更多收穫。
作者簡介:
◎數位新知
主要從事電腦圖書編著及資訊課程教育學習平台研發,團隊是由多位專業作者組成,皆為長期從事資訊教育的工作者,故寫作的領域相當豐富多元,包括APCS大學先修程式檢測、程式語言、網頁設計、人工智慧、演算法、資料結構、影像處理、視訊剪輯、大數據、電競與遊戲設計、電子商務、網路行銷等現代資訊社會必備的各種課程。
作者序
隨著科技的日新月異,零與壹匯聚的資訊長河,資料浩瀚如星漢。好的程式就像一道色、香、味皆有的料理。「結構嚴謹,表達完善」組成程式的不二法門。「結構」泛指資料結構,通常是為了解決某些特定問題而提出,最簡單就是告訴電腦如何儲存、組織這些資料。「表達」則是演算法的運用,所以資料結構和演算法是撰寫程式兩大基石。本書以資料結構為主,探討它們的相關知識。另一個要角就是C#程式語言,在2000年由微軟公開發布,以集成開發環境為介面,期待取代Java,在.NET框架上才能執行。它繼承了C和C++強大功能,而複雜的指標就被屏除在外了,同樣地它也是物件導向程式語言的成員,配合.NET框架所提供類別程式庫。
所以,資料結構的學習之旅,就以C#程式語言為第一步。隨著資料結構的腳步,從線性的一維陣列,擴展到平面的二維,再到立體的三維陣列。而陣列位址的計算,矩陣的相加、相乘和轉置也是我們應該熟知。
隨著章節脈絡,單向的鏈結串列上場,以鏈結方式指向下一個節點,而雙向鏈結串列則能左、右則能雙向鏈結。有了它們,才能以堆疊和佇列為實做對象。進一步應用堆疊,把運算式以前序、中序、後序呈現。由河內塔問題到老鼠走迷宮來看待遞迴。先進先出的佇列,如何處理雙佇列和優先權。
從線性資料結構跨一步到非線性結構,認識樹而以二元樹的走訪來展開資料的搜尋。由線而面,圖形由深而廣(DFS)或者是由廣而深(BFS)的追蹤,找出最短路徑才能解決問題。
為了提高學習興趣,每個章節會佐以大量的圖像解說,在思考問題的當下,未進入程式碼實作之前,配合虛擬碼來呈現資料結構的處理。同樣地,面對問題解決問題,每個章節皆有課後習題,讓自己在學習之外,檢測自己是否有更多的了解。
雖然本書校稿過程力求無誤,唯恐有疏漏,還望各位先進不吝指教!
隨著科技的日新月異,零與壹匯聚的資訊長河,資料浩瀚如星漢。好的程式就像一道色、香、味皆有的料理。「結構嚴謹,表達完善」組成程式的不二法門。「結構」泛指資料結構,通常是為了解決某些特定問題而提出,最簡單就是告訴電腦如何儲存、組織這些資料。「表達」則是演算法的運用,所以資料結構和演算法是撰寫程式兩大基石。本書以資料結構為主,探討它們的相關知識。另一個要角就是C#程式語言,在2000年由微軟公開發布,以集成開發環境為介面,期待取代Java,在.NET框架上才能執行。它繼承了C和C++強大功能,而複雜的指標就被屏除在外了...
目錄
第一章 認識Visual C#
1.1 使用Visual Studio 2017
1.2 C#程式語言結構
1.3 Visual C#基本語法
1.4 運算子
1.5 流程結構
1.6 方法
課後習作
第二章 話說資料結構
2.1 資料是什麼?
2.2 資料結構簡介
2.3 演算法
2.4 分析演算法的效能
課後習作
第三章 善用陣列
3.1 話說陣列
3.2 陣列維度
3.3 計算陣列位址
3.4 矩陣
3.5 字串簡介
課後習作
第四章 鏈結串列
4.1 類別、物件和其成員
4.2 單向鏈結串列
4.3 環狀鏈結串列
4.4 雙向鏈結串列
4.5 鏈結串列的應用
課後習作
第五章 堆疊和遞迴
5.1 堆疊
5.2 堆疊應用
5.3 遞迴
課後習作
第六章 排隊的智慧──佇列
6.1 認識佇列
6.2 其他常見佇列
課後習作
第七章 樹狀結構
7.1 何謂樹?
7.2 二元樹
7.3 走訪二元樹
7.4 二元搜尋樹
7.5 平衡樹
課後習作
第八章 圖形結構
8.1 認識圖形和其定義
8.2 圖形的資料結構
8.3 圖形追蹤
8.4 擴張樹
8.5 最短路徑
課後習作
第九章 條理分明有排序
9.1 認識排序
9.2 換位置的交換排序
9.3 能插隊的插入排序
9.4 有選擇權的排序法
9.5 合併排序法
9.6 基數排序法
課後習作
第十章 眾裡找它談搜尋
10.1 常見搜尋法
10.2 費氏搜尋法
10.3 雜湊搜尋法
10.4 雜湊法的碰撞問題
課後習作
第一章 認識Visual C#
1.1 使用Visual Studio 2017
1.2 C#程式語言結構
1.3 Visual C#基本語法
1.4 運算子
1.5 流程結構
1.6 方法
課後習作
第二章 話說資料結構
2.1 資料是什麼?
2.2 資料結構簡介
2.3 演算法
2.4 分析演算法的效能
課後習作
第三章 善用陣列
3.1 話說陣列
3.2 陣列維度
3.3 計算陣列位址
3.4 矩陣
3.5 字串簡介
課後習作
第四章 鏈結串列
4.1 類別、物件和其成員
4.2 單向鏈結串列
4.3 環狀鏈結串列
4.4 雙向鏈結串列
4.5 鏈結串列的應用
課後習作
第五章 堆疊和遞迴
5.1 堆疊
5...