有哪些常見的資料結構?陣列(Array)、鏈結串列(Linked List)、堆疊(Stack)、佇列(Queue)、樹(Tree)、圖(Graph)、堆積(Heap)、雜湊表(Hash table)等。
這是一個資料暢行、訊息傳遞快速的世界。本書以Java程式語言為實作對象,以圖像解說呈現資料結構的概念與運作,藉由Java程式語言的特色和語法來豐富資料結構的內涵,是學習資料結構最佳入門書。
全書重要主題如下:
●以直白、易懂的Java語言演示敘述、語法和範例
●範例皆有完整的程式碼,邊做邊學,學與做相互並行,不只能輕鬆上手,更能加快學習成效
●提供資料結構多樣性解說和詮釋,使用Java程式語言,把理論化繁為簡,讓學習者能全盤掌握
●圖像解說一目了然,資料呈現以表格做條理化,按部就班的步驟,讓程式範例說明立體化,學習者跟上就能學會
●各章節末皆有針對內容的課後習作,包含測驗和實作題型,規劃自己的學習進度,練習或加強學習知識的範疇
期能把握住最嚴謹的態度,輔以最精要的表達方式,降低閱讀的壓力,筆者深信本書能讓學習者對資料結構有更多收穫。
作者簡介:
◎數位新知
主要從事電腦圖書編著及資訊課程教育學習平台研發,團隊是由多位專業作者組成,皆為長期從事資訊教育的工作者,故寫作的領域相當豐富多元,包括APCS大學先修程式檢測、程式語言、網頁設計、人工智慧、演算法、資料結構、影像處理、視訊剪輯、大數據、電競與遊戲設計、電子商務、網路行銷等現代資訊社會必備的各種課程。
作者序
序
在零與壹的世界,資料浩瀚如星漢。好的程式代表著它是「結構嚴謹,表達完善」。「結構」泛指資料結構,通常是為了解決某些特定問題而提出,最簡單就是告訴電腦如何儲存、組織這些資料。「表達」則是演算法的運用,所以資料結構和演算法是撰寫程式兩大基石。本書以資料結構為主,探討它們的相關知識。本書另一個要角就是Java程式語言,從橡樹變成咖啡,即使歷經變革,在程式語言排行榜中,它依然高居第四名。
為了更好呈現資料結構的概念與作法,提高學習的興趣,每個章節會佐以大量的圖像解說。思考問題的當下,也能利用資料結構處理資料的特性來掌握更多訊息。同樣地,面對問題解決問題,每個章節皆有課後習題,讓自己在學習之外,檢測自己的收穫。
踏上資料結構學習之旅的第一步,就從Java程式語言開始,除了基本的語法之外,如何定義類別、使用建構式初始化物件。隨著資料結構的腳步,基本的一維陣列是起手式,引領大家使用陣列結構,從平面二維到立體三維的,如何計算其位址,矩陣的相加和轉置亦是討論範圍。
隨著章節的演示,鏈結串列從單向到雙向,堆疊和佇列則是利用陣列或鏈結串列來表達。進一步應用堆疊,把運算式以前序、中序、後序呈現。由河內塔問題到老鼠走迷宮來看待遞廻。先進先出的佇列,如何處理雙佇列和優先權。
從線性資料結構跨一步到非線性結構,認識樹而以二元樹的走訪來展開資料的搜尋。由線而面,圖形由深而廣(DFS)或者是由廣而深(BFS)的追蹤,找出最短路徑才能解決問題。
搜尋與排序也是日常生活所見,從交換位置的氣池排序到快速完成排序的合併排序,也納入本書的討論。搜尋資料時,一個一個地找,只適用資料量少;二元或內插搜尋能加速其速度,使用雜湊搜尋得留意資料碰撞的問題。
雖然本書校稿過程力求無誤,唯恐有疏漏,還望各位先進不吝指教!
序
在零與壹的世界,資料浩瀚如星漢。好的程式代表著它是「結構嚴謹,表達完善」。「結構」泛指資料結構,通常是為了解決某些特定問題而提出,最簡單就是告訴電腦如何儲存、組織這些資料。「表達」則是演算法的運用,所以資料結構和演算法是撰寫程式兩大基石。本書以資料結構為主,探討它們的相關知識。本書另一個要角就是Java程式語言,從橡樹變成咖啡,即使歷經變革,在程式語言排行榜中,它依然高居第四名。
為了更好呈現資料結構的概念與作法,提高學習的興趣,每個章節會佐以大量的圖像解說。思考問題的當下,也能利用資料結構處理...
目錄
第一章 Java入門
1.1 Java SE的下載、安裝、設定
1.2 撰寫、編譯程式
1.3 簡介Java程式語言
1.4 Java基本語法
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 雜湊法的碰撞問題
課後習作
第一章 Java入門
1.1 Java SE的下載、安裝、設定
1.2 撰寫、編譯程式
1.3 簡介Java程式語言
1.4 Java基本語法
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 鍵結串列的應用 ...