資料結構-Python 程式實作

張元翔

相關主題

商品描述

本書特色

1. 循序漸進的內容編排:採用由淺入深的介紹方式,適合新手逐步學習資料結構概念與實作。
2. 理論與實作相結合:先講解資料結構的理論,接著使用Python進行實作,幫助讀者在動手操作中理解概念。
3. 涵蓋多種資料結構:內容涵蓋基本與進階資料結構,如串列、陣列、鏈結串列、堆疊、佇列、樹狀結構、圖形結構等,讓讀者能夠系統性地學習各種資料結構的應用。
4. 豐富的實例應用:每個章節均提供實際應用範例,例如迷宮問題、股價趨勢圖、數獨、N皇后問題、最短路徑等,增強學習趣味與成就感。
5. 適合多種學習對象:本書適合高中或大專學生入門學習,也適合產業界研發工程師或創客玩家。
6. 全面的學習資源:附錄提供數學公式與ASCII表等,增強學習便利性並輔助程式設計。

內容簡介

本書編寫主要目的是希望結合「運算思維與程式設計」課題,介紹「資料結構」的基本概念,並進行Python程式實作,以深化電腦應用與程式設計能力。編寫的對象,適合對於「資訊科技」領域具有興趣的普高/技高或大專學生,同時也適合產業界的研發工程師或創客玩家等。
本書採用主題介紹方式,強調循序漸進、由淺入深。除了介紹「資料結構」的理論基礎之外,同時搭配Python程式實作,強調理論與實務的緊密結合,實現「做中學」的學習理念,期望協助您快速入門。

 

目錄大綱

Chapter 01 介紹
1.1 引言
1.2 運算思維
1.3 電腦科學領域
1.4 資料型態的種類
1.5 資料結構的定義
1.6 資料與資訊

Chapter 02 時間複雜度
2.1 基本概念
2.2 函數的分類與排序
2.3 漸近表示法
2.4 演算法的時間複雜度

Chapter 03 Python 資料結構
3.1 基本概念
3.2 串列
3.3 元組
3.4 集合
3.5 字典

Chapter 04 陣列
4.1 基本概念
4.2 一維陣列
4.3 二維陣列
4.4 時間複雜度
4.5 陣列的應用
4.6 多項式運算
4.7 雞兔同籠
4.8 魔術方塊
4.9 數獨
4.10 n-皇后問題
4.11 騎士巡邏問題
4.12 數位訊號
4.13 數位影像
4.14 股價趨勢圖

Chapter 05 鏈結串列
5.1 基本概念
5.2 單向鏈結串列
5.3 雙向鏈結串列
5.4 環狀鏈結串列
5.5 時間複雜度
5.6 鏈結串列的應用
5.7 多項式運算
5.8 桶子排序

Chapter 06 堆疊與佇列
6.1 基本概念
6.2 堆疊
6.3 佇列
6.4 環狀佇列
6.5 雙向佇列
6.6 時間複雜度
6.7 堆疊與佇列的應用
6.8 迴文
6.9 迷宮問題
6.10 中序表示式轉後序表示式

Chapter 07 樹狀結構
7.1 基本概念
7.2 樹的專有名詞
7.3 樹的表示法
7.4 二元樹的走訪
7.5 二元搜尋樹
7.6 時間複雜度
7.7 樹狀結構的應用
7.8 二元樹排序
7.9 運算式樹

Chapter 08 堆積與優先佇列
8.1 基本概念
8.2 最大堆積
8.3 最小堆積
8.4 最大優先佇列
8.5 最小優先佇列
8.6 堆積佇列
8.7 時間複雜度
8.8 堆積與優先佇列的應用
8.9 堆積排序

Chapter 09 不相交集合
9.1 基本概念
9.2 不相交集合
9.3 時間複雜度
9.4 不相交集合的應用
9.5 迷宮產生器
9.6 連通元

Chapter 10 雜湊表
10.1 基本概念
10.2 雜湊表
10.3 雜湊表的基本操作
10.4 雜湊表的碰撞問題
10.5 雜湊表的插入
10.6 雜湊表的刪除
10.7 時間複雜度
10.8 雜湊表的應用

Chapter 11 圖形結構
11.1 基本概念
11.2 圖形的定義
11.3 圖形的種類
11.4 圖形表示法
11.5 圖形的專有名詞
11.6 廣度優先搜尋
11.7 深度優先搜尋
11.8 最小生成樹
11.9 最短路徑問題
11.10 歐拉旅途
11.11 哈密頓迴圈

Chapter 12 AVL樹
12.1 基本概念
12.2 AVL樹
12.3 AVL樹的旋轉操作
12.4 AVL樹的插入
12.5 AVL樹的刪除
12.6 時間複雜度

Chapter 13 B-樹
13.1 基本概念
13.2 2-3樹
13.3 2-3-4樹
13.4 時間複雜度

附錄 A
A.1 數學基本公式
A.2 ASCII表
A.3 參考文獻