Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
師大資工系ACM-ICPC讀書會:肆、鏈結串列與二元樹
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Maplewing
December 06, 2013
Programming
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
師大資工系ACM-ICPC讀書會:肆、鏈結串列與二元樹
師大資工系ACM-ICPC讀書會:肆、鏈結串列與二元樹
Maplewing
December 06, 2013
More Decks by Maplewing
See All by Maplewing
資訊實務應用讀書會 第七堂課:jQuery
sinmaplewing
0
2.1k
師大資工系ACM-ICPC讀書會:參、堆疊與佇列
sinmaplewing
0
240
師大資工系ACM-ICPC讀書會:貳、排序搜尋與數學基礎
sinmaplewing
0
200
資訊實務應用讀書會 第六堂課:Basic CSS
sinmaplewing
0
1.7k
師大資工系ACM-ICPC讀書會:壹、字串處理與大數運算
sinmaplewing
0
150
師大資工系ACM-ICPC讀書會:零、比賽介紹、解題系統介紹
sinmaplewing
0
230
資訊實務應用讀書會 第四堂課(支線):Linux
sinmaplewing
0
1.9k
資訊實務應用讀書會 第一堂課:Basic HTML
sinmaplewing
1
2.1k
Other Decks in Programming
See All in Programming
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
220
A2UI という光を覗いてみる
satohjohn
1
130
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
120
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
540
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
130
CSC307 Lecture 17
javiergs
PRO
0
320
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
110
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
230
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
5.5k
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
160
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5k
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
450
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
200
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
250
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
300
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
310
Become a Pro
speakerdeck
PRO
31
6k
Transcript
肆、鏈結串列與二元樹 師大資工系 灆洢 取自於<提升程式設計的邏輯思考力> 6.2 & 6.3
鏈結串列
struct node{ int value; node *next; }; 單向鏈結串列 Singly Linked
List 22 12 32
插入新節點 22 12 32 5 node node.next newnode newnode.next =
node.next; node.next = newnode;
刪除節點 22 12 32 node node.next node.next.next node *delnode =
node.next; node.next = node.next.next; delete delnode;
struct node{ int value; node *prev, *next; }; 雙向鏈結串列 Doubly
Linked List 22 12 32
• List containers are implemented as doubly-linked lists. C++ STL:
list
•127 •101 •133 •10152 •673 •442 作業 •11111 •11234 •540
•10050
二元樹
• 任兩點之間都相通,並且沒有環的圖。 • 來源:演算法筆記 樹 Tree
二元樹 Binary Tree
• 陣列 • 以0為root • 往編號n之左子樹:2*(n+1) - 1 • 往編號n之右子樹:2*(n+1)
• 往父節點:floor((n-1)/2) • 鏈結串列 • struct node { int data; node *left, *right; }; 儲存方式
需要用queue 廣度優先搜尋 BFS: Breadth-first search
深度優先搜尋 DFS: Depth-first search 需要用recursion或stack
樹的走訪:前序、中序、後序
function Preorder(node){ if(!node.left && !node.right){ print(node.value); return; } print(node.value); Preorder(node.left);
Preorder(node.right); } Ans: F,B,A,D,C,E,G,I,H 前序
function Inorder(node){ if(!node.left && !node.right){ print(node.value); return; } Preorder(node.left); print(node.value);
Preorder(node.right); } Ans: ABCDEFGHI 中序
function Postorder(node){ if(!node.left && !node.right){ print(node.value); return; } Preorder(node.left); Preorder(node.right);
print(node.value); } Ans: ACEDBHIGF 後序
• 給予前序與中序,如何找出後序? • 前:DBACEGF 中:ABCDEFG • 後:ACBFGED 問題:二元樹重建
作業 •112 •548 •297 •712 •699 •327 •839 •10562
謝謝聆聽 資料取自於<提升程式設計的邏輯思考力> 6.2 & 6.3