圖解資料結構 × 演算法:運用Python
. ]9 p2 R( o- P$ Y2 E: d- X 作者:胡昭民8 b, L7 u5 T5 \! E- R* R3 i
出版社:博碩
( i' W! {; {4 ^$ G5 w+ d; k 出版日期:2022/07/25
# j( E- V5 g5 }% E. e& ~/ V; w 语言:繁体中文- n' K. c8 S }7 l
出版地:中国台湾
/ B+ P$ `( R& ~3 Z* l# H 本書是一本以 Python 程式語言實作來解說資料結構概念的重要著作。為了方便學習,書中都是完整的程式碼,可以避免片斷學習程式的困擾。內容編排上將較為複雜的理論以圖文並茂的方式解說,並將這些資料結構理論以*簡單的方式表達,加以詮釋。從*基本的資料結構概念開始說明,再以 Python 語言加以詮釋陣列結構、堆疊、鏈結串列、佇列、樹狀、圖形、排序、搜尋等重要觀念。*後在附錄中整理了資料結構相關的專有名詞,並加入一些重要演算好的介紹與實作。7 g3 j3 m7 _( F5 Y/ B3 j4 N( t$ [
【重點主題】6 a- N, L# T2 r9 D/ S8 h! a- K; }0 k
◆ 資料結構入門與演算法
) k8 z/ \; c' K: e n5 a9 W ◆ 陣列結構 / 串列結構9 _: ^6 C3 G* n8 Z/ d7 g
◆ 堆疊 / 佇列
. K( l# }- r, I ◆ 樹狀結構 / 圖形結構) u! N; z; S t: X+ [3 y( B
◆ 排序演算法$ p& B$ ]$ w5 }3 o* T
◆ 搜尋演算法與雜湊函數
+ [2 }+ k; Q+ E2 t' k0 b1 m" K% ]' ]2 s ◆ 資料結構專有名詞
2 u' v: ^! J$ ]9 _ 本書特色3 a4 n; p4 n3 D& c9 y; N
※內容架構完整,邏輯清楚,採用豐富的圖例來闡述基本觀念及應用,有效提高可讀性。
; n g2 v4 r$ J- ]7 U; o/ E ※以 Python 語言實作資料結構中的重要理論,以範例程式說明資料結構的內涵。
( K2 H; q) P$ ^ ] ※強調邊作邊學:提供書中範例完整程式檔,給予*完整的支援,加深學習記憶。. T& x% D) ^& K6 y7 l
※驗收學習成果:參閱國家考試題型,設計難易適中的習題,提供進一步演練。
0 W6 t2 q( K0 E; g: H* Y+ U Chapter 1 資料結構與演算法入門
! `4 J/ \) d2 N" p/ Z 1-1 資料結構的定義1 x$ M) g9 H4 f2 Z% T
1-1-1 資料與資訊
7 ?5 Y @! l8 w h# n 1-1-2 資料的特性
. Z1 q1 b9 T0 W4 R 1-1-3 資料結構的應用
. O3 ~* P) T1 n6 V 1-2 演算法; G' X1 w/ x0 n" z3 y/ g4 d
1-2-1 演算法的條件! U/ g2 d, {0 H& R) P" w
1-2-2 演算法的表現方式
2 o, E7 l' s9 k Z0 e: o) I: r 1-3 常見演算法簡介' F7 N: m+ U( l6 d# B# Y
1-3-1 分治法" V* g5 g( m! o. w
1-3-2 貪心法
# q& B. l( r$ ^! e/ [ 1-3-3 枚舉法
$ x/ c. a2 e- F$ B- z$ { y* b& w$ x 1-3-4 巴斯卡三角形演算法3 J; p4 {+ J: @2 U
1-3-5 質數求解演算法
: r2 A8 o! l. ~1 t4 S' ?% P 1-4 演算法效能分析
# [8 A# D5 w$ ^0 E8 S9 q 1-4-1 Big-oh
0 W3 F: w _# r B 1-4-2 Ω(omega)
6 c( r: [+ T a: { 1-4-3 θ(theta)
" R! } K7 m) m* w( e( I Chapter 2 陣列結構/ e8 K1 w7 x/ [. K8 N K& L ]
2-1 線性串列簡介
* }/ m& N; \9 I 2-1-1 儲存結構簡介. ~0 ?) j. k2 r4 r1 y
2-2 認識陣列0 d1 e+ w1 w) m: W
2-2-1 二維陣列) Z$ F) }, @/ h5 y5 T# q
2-2-2 三維陣列
% f. F c! H1 U; N 2-2-3 n維陣列" U& `+ X) e3 K/ ?
2-3 矩陣' @4 h) t6 r, _; [7 F
2-3-1 矩陣相加
. r8 I$ K% [! Z/ q% e 2-3-2 矩陣相乘8 g8 B7 G! w" p- m0 }: Q* h
2-3-3 轉置矩陣
- `/ q+ P5 P" M2 i0 x+ V- q 2-3-4 稀疏矩陣. A1 m8 @* O' w" i: F3 l/ B
2-3-5 上三角形矩陣) }' L8 O- b% k R4 U
2-3-6 下三角形矩陣% K" d/ H; p; D) a1 c
2-3-7 帶狀矩陣
- V0 j, A+ H4 i1 i" J! s" W 2-4 陣列與多項式
0 y% h. \- B' \& \- ^8 ~; B 2-4-1 認識多項式
+ c( s" M* U7 O$ s. d Chapter 3 串列結構
: s$ U" {# U1 Y, G p 3-1 單向串列. R1 |6 e: d7 E! m) c. T
3-1-1 建立單向串列& v/ S4 Q- N3 _
3-1-2 走訪單向串列
. P9 A2 E1 ~$ A+ Y' @+ V! k 3-1-3 單向串列插入新節點
. {+ v% u3 V: V" I: | 3-1-4 單向串列刪除節點
: c$ ^* m' p {* `& n 3-1-5 單向串列的反轉, {5 m6 Q5 m5 }; @ E1 {
3-1-6 單向串列的連結功能* ^2 `& z1 E5 \8 i8 }
3-1-7 多項式串列表示法
# Y8 V$ p6 d# g: f2 X% S+ o 3-2 環狀串列 ]5 @- I4 K K! j' ~ a
3-2-1 環狀串列的建立與走訪6 ~! h1 J8 B0 Z5 _
3-2-2 環狀串列插入新節點
- {' \3 l8 H! ` 3-2-3 環狀串列刪除節點
9 x- s# Y1 F" t4 `" j 3-2-4 環狀串列的連結
. S0 b) l8 O3 @6 q6 W( u5 n 3-2-5 環狀串列與稀疏矩陣表示法0 i% K+ t% u. N9 T5 q. ~ }) Z
3-3 雙向串列$ F+ d* C) O4 D' S ~, j6 B
3-3-1 雙向串列建立與走訪% \/ g+ G& @1 s W
3-3-2 雙向串列加入新節點8 P4 h* T4 [% R2 j
3-3-3 雙向串列刪除節點
. r9 ]1 q7 t$ ^3 o$ f( |" c Chapter 4 堆疊
3 Y h$ { p" f; l 4-1 堆疊簡介; @. S2 F3 P% L: |5 x9 {0 [/ m
4-1-1 陣列實作堆疊
. C% o9 e Y P' K- i' e 4-1-2 串列實作堆疊
1 E5 @' B2 p; N7 ]% d5 m 4-2 堆疊的應用. ^* P$ C" [; C H
4-2-1 遞迴演算法
1 ~$ U) k' ^2 Z 4-2-2 動態規劃演算法. T$ o4 q8 ~$ S5 U
4-2-3 河內塔問題# J$ B' l6 Z3 c/ |6 x% @& a
4-2-4 回溯法-老鼠走迷宮
0 t" G, _( r5 K/ H4 e 4-2-5 八皇后問題
9 ~4 s+ p+ ~& b2 { 4-3 算術運算式的表示法
( V1 O, D. {1 g3 c/ s' [8 |1 y- k 4-3-1 中序轉為前序與後序
# L9 I' Y) j9 R" u, M 4-3-2 前序與後序轉為中序
( W& G( x4 T% H) F 4-3-3 中序表示法求值
" E0 l9 Z% N$ i/ n( [6 E, ^! i) G+ R 4-3-4 前序法的求值運算
" L7 g, G1 T, f/ z 4-3-5 後序法的求值運算
( b2 n# O5 o/ x; W8 ~; Q9 t( \ Chapter 5 佇列
2 h5 f9 k- ?; w3 x3 q 5-1 認識佇列
/ D' V: v5 U, r- e4 `" Q 5-1-1 佇列的工作運算1 e+ r U5 M9 t) E2 |) x# W
5-1-2 佇列的應用- x, [- {% W" X% w
5-1-3 陣列實作佇列, m6 [/ `# g( t% C
5-1-4 串列實作佇列4 j! w# z* \- x$ M9 l
5-2 環狀佇列、雙向佇列與優先佇列$ M j$ }- H3 A, E; g0 P& [
5-2-1 環狀佇列
$ q1 D& [; N2 @3 {5 ]. k# x 5-2-2 雙向佇列
0 i, {9 k0 t1 i1 w 5-2-3 優先佇列
7 @' \4 Q4 {4 y$ W; @3 G K Chapter 6 樹狀結構
; s, l3 C- q4 @ 6-1 樹的基本觀念
9 W4 N! R; P5 h. M9 I/ r, R, b' C Y 6-1-1 樹專有名詞簡介
0 Y- c' ?$ }0 e" N6 Y$ | 6-2 二元樹簡介) }% Y+ o8 |" L2 d
6-2-1 二元樹的定義- ]7 P6 }0 j0 w
6-2-2 特殊二元樹簡介
( ]6 ]! p( C, E P) f 6-3 二元樹的儲存方式* ]5 [/ _. p5 w* K* E$ C
6-3-1 一維陣列表示法8 Q+ @2 ~6 x b5 S
6-3-2 串列表示法
! s _# C1 i3 c9 ]# \ 6-4 二元樹走訪
* I" c# r6 b/ a% Q* R! Z) Z 6-4-1 中序走訪
7 M. @& x. m: o" p9 Q9 v8 T7 J 6-4-2 後序走訪( C. E% D. O: |; Q( f2 o+ P; |
6-4-3 前序走訪
& k5 }; y7 g/ Z 6-4-4 二元樹節點的插入與刪除' |1 ]8 j/ i+ D3 r7 g
6-4-5 二元運算樹
+ @2 E+ i% C9 H2 [2 s; K 6-5 引線二元樹& }3 M0 c& f3 ~' ^) i' X$ l( q
6-5-1 二元樹轉為引線二元樹# Q9 O+ b0 j4 T1 d! @3 ~
6-6 樹的二元樹表示法
' s) U5 H* I1 U% \6 I; C 6-6-1 樹化為二元樹2 x4 M, w9 V) X5 l Q% n
6-6-2 二元樹轉換成樹
1 S5 m6 w9 Z9 j1 j* E, F: i 6-6-3 樹林化為二元樹
* t1 W( g3 `! p: c( ~; h- K 6-6-4 二元樹轉換成樹林
A* k4 V+ A/ L3 F: Y 6-6-5 樹與樹林的走訪
2 L: ~ b% y' Z2 a2 s. _* m 6-6-6 決定*一二元樹
; I o1 @1 Y* _1 a! b0 b 6-7 *佳化二元搜尋樹' u5 Q/ O4 l6 m' M6 L9 X
6-7-1 延伸二元樹4 G6 k# b/ v4 p% }
6-7-2 霍夫曼樹
" T! N! v3 G) X7 |8 G3 F- u9 n# H 6-8 平衡樹/ i4 u, R A3 P. @. z$ h, Q3 {& n
6-8-1 平衡樹的定義
6 X/ V& q; C B. h% {- f 6-9 進階樹狀結構的應用5 c! u' r4 p. M! i# K; T
6-9-1 決策樹/ B$ }- E. h6 W A; I3 K+ Z: I
6-9-2 B樹
- u. W! U7 E$ E: }, K+ V7 d* z 6-9-3 二元空間分割樹(BSP)
' [. N1 W, |; {! f p9 G2 \ 6-9-4 四元樹 / 八元樹
: d, Y' J9 c5 E9 F3 T' I" ? Chapter 7 圖形結構
5 K8 `" J( b9 o+ Z$ d4 u 7-1 圖形簡介& _* i" S% _% U7 K2 \/ Z
7-1-1 尤拉環與尤拉鏈
8 F& z, t: G# |$ X' {+ t 7-1-2 圖形的定義
) K4 m( Y+ p7 A. m! Q" m+ ]( K 7-1-3 無向圖形
( _0 o2 q/ O! N R 7-1-4 有向圖形
& P7 g( f; g' r* |# h- e# ~) | 7-2 圖形的資料表示法, p7 G4 D( f- y5 O5 g- d
7-2-1 相鄰矩陣法; g2 n6 N1 z1 M8 x
7-2-2 相鄰串列法
5 W! k( d+ K# P- k6 O9 n, [! } 7-2-3 相鄰複合串列法
+ a! }* I$ I! V9 m' z& W 7-2-4 索引表格法* y: [6 R9 q, p7 R: Q
7-3 圖形的走訪
+ _, Q, o5 S7 S5 i 7-3-1 先深後廣法
% X- c9 N. `4 v$ E$ Q 7-3-2 先廣後深搜尋法
; A4 Y' v# Z* E" x 7-4 擴張樹) q w& r1 {' ~. ?. Q0 l
7-4-1 DFS擴張樹及BFS擴張樹( H: s, w0 |2 e/ H5 }# v
7-4-2 *小花費擴張樹
0 n5 w( c$ K& q4 o: y+ y 7-4-3 Kruskal演算法
9 f A0 n+ @# h9 {5 R, O; g 7-4-4 Prim演算法3 |: b3 a/ F2 ~) s% V! T! F
7-5 圖形*短路徑& _$ P9 |" M6 A, s6 k
7-5-1 單點對全部頂點
7 J6 @4 z- w8 X 7-5-2 兩兩頂點間的*短路徑
. P4 j. h8 I0 P 7-5-3 A* 演算法
0 W6 `3 }- l/ G6 h4 n 7-6 AOV網路與拓樸排序2 K9 f Y- v6 W$ c$ u+ U+ d$ S: B
7-6-1 拓樸序列簡介
, U8 C( X: T* V) e- O- F1 a; r 7-7 AOE網路
0 J. W, [' ~+ ]+ x7 T% D& M 7-7-1 臨界路徑
9 g( [( S$ G6 e Chapter 8 排序演算法& ~5 F. b: `2 o) z
8-1 認識排序' V) C3 j. n) y. q* M5 ?+ D% i
8-1-1 排序的分類
8 B: s% n- ~; O 8-1-2 排序演算法分析
4 ]% A8 b+ K4 Q5 x% P, _& I& e 8-2 內部排序法
3 k: K7 ]+ t; u% u0 X* Q$ E 8-2-1 氣泡排序法# h9 ` K' {& u/ s
8-2-2 雞尾酒排序法
4 d+ }- o! x4 {, S 8-2-3 選擇排序法" e5 H) m) o- s m9 K q4 o
8-2-4 插入排序法
0 i4 j* N4 a {% o4 N0 M 8-2-5 謝耳排序法
' |3 _' J4 O1 K: n: ^0 G/ j \ 8-2-6 合併排序法
/ t1 m1 c0 e& _: J8 \! @1 A 8-2-7 快速排序法5 `) b7 g, g! y- M( d( a' I4 `. E
8-2-8 堆積排序法
E! v. k! c2 I 8-2-9 基數排序法. \* ~! ?/ U1 h, `
Chapter 9 搜尋演算法與雜湊函數* R" E# b$ A3 W' r1 y$ L' K ^. b6 q
9-1 常見搜尋演算法1 p6 z4 j# q+ {
9-1-1 循序搜尋法; `) y# X! ]3 _2 m9 o
9-1-2 二分搜尋法
! r5 J7 P$ H9 c8 g 9-1-3 內插搜尋法
6 D; _) y7 `! A5 g 9-1-4 費氏搜尋法( ^ d; W/ ?+ V3 Z `
9-2 雜湊搜尋法; Q) x2 i8 s& C0 u: m5 R1 z! g5 x7 g
9-2-1 雜湊法簡介" ~/ }1 h" Z9 y/ I. p5 `
9-3 常用的雜湊函數- A) ] S+ U$ o
9-3-1 除法
9 B4 v% b7 V" R7 _ 9-3-2 中間平方法
( b; B) ~- T0 Z( Q- W7 B% G 9-3-3 折疊法
3 b7 {0 l6 [5 n2 [1 m+ X, E$ M2 f 9-3-4 數位分析法
% v& J" G5 e7 O2 z3 z% V/ J 9-4 碰撞與溢位問題的處理 s' l$ _3 s8 K& {" I
9-4-1 線性探測法; o3 h ~4 J( P4 ]# B$ O, h* ]% \
9-4-2 平方探測法$ d9 K/ U1 L$ B/ }+ L
9-4-3 再雜湊法
. Z6 X9 p: K' m# ]" M 9-4-4 鏈結串列法
T/ g& `$ h0 _* V7 L" N3 ^ 附錄A 資料結構專有名詞索引
7 B$ T5 o+ |7 w7 A游客,本下载内容需要支付 5共享币,购买后显示下载链接立即支付 J$ A+ h# Z6 |; m: J9 H" q
* T. T( a% M0 m( c$ a |