µn¤J
¡U
µù¥U
¡U
·|û¤¤¤ß
¡U
µ²±b
¡U
°ö°V½Òµ{
Å]ªk§Ì¤l
¡U
¦Û¸ê¥Xª©
¡U
¹q¤l®Ñ
¡U
«ÈªA¤¤¤ß
¡U
´¼¼z«¬¥ßÊ^·|û
®Ñ¦W
¥Xª©ªÀ
§@ªÌ
isbn
½s¸¹
5050Å]ªk²³Äw
|
NG®Ñ«°
|
°ê»Ú¯Å«~µP½Òµ{
|
Àu´f³qª¾
|
ÅRÆE^¶¯µ¼Öºë¿ï
|
·L³B²z¾÷¡þ³æ´¹¤ù²Õ¦X»y¨¥±Ð¾Ç½d¥»(ªþCD)
¡D
TCP/IP¤¬³sºô¸ô
¡D
C++µ{¦¡³]pÃÀ³N(
¤å¾Ç¤p»¡
¤å¾Ç
¡U
¤p»¡
°ÓºÞ³Ð§ë
°]¸g§ë¸ê
¡U
¦æ¾P¥øºÞ
¤H¤åÃÀ§{
©v±Ð¡Bõ¾Ç
ªÀ·|¡B¤H¤å¡B¥v¦a
ÃÀ³N¡B¬ü¾Ç
¡U
¹q¼vÀ¸¼@
Ày§Ó¾i¥Í
ÂåÀø¡B«O°·
®Æ²z¡B¥Í¬¡¦Ê¬ì
±Ð¨|¡B¤ß²z¡BÀy§Ó
¶i׾Dzß
¹q¸£»Pºô¸ô
¡U
»y¨¥¤u¨ã
Âø»x¡B´Á¥Z
¡U
x¬F¡Bªk«ß
°Ñ¦Ò¡B¦Ò¸Õ¡B±Ð¬ì¥Î®Ñ
¬ì¾Ç¤uµ{
¬ì¾Ç¡B¦ÛµM
¡U
¤u·~¡B¤uµ{
®a®x¿Ë¤l
®a®x¡B¿Ë¤l¡B¤H»Ú
«C¤Ö¦~¡Bµ£®Ñ
ª±¼Ö¤Ñ¦a
®È¹C¡B¦a¹Ï
¡U
¥ð¶¢®T¼Ö
º©µe¡B´¡¹Ï
¡U
¨î¯Å
¸ê®Æµ²ºc»Pºtºâªk¡G¨Ï¥ÎJAVA(²Ä¤»ª©)
§@ªÌ¡G
佘步¶³
¤ÀÃþ¡G
°Ñ¦Ò¡E¦Ò¸Õ¡E±Ð¬ì®Ñ
¡þ
¤j±M¾Ç°|±Ð¬ì®Ñ
¥Xª©ªÀ¡G
¥þµØ¹Ï®Ñ
¥Xª©¤é´Á¡G2018/1/15
ISBN¡G9789864637096
®ÑÄy½s¸¹¡Gkk0460628
¶¼Æ¡G608
©w»ù¡G
690
¤¸
Àu´f»ù¡G
88
§é
607
¤¸
®Ñ»ùY¦³²§°Ê¡A¥H¥Xª©ªÀ¹ê»Ú©w»ù¬°·Ç
qÁÊ«á¥ß§Y¬°±z¶i³f
qÁÊ«á¥ß§Y¬°±z¶i³f¡G¥Ø«eµL®w¦s¶q,ŪªÌ¤Uq«á,¶}©l¶i¤J½Õ®Ñµ{§Ç,¤@¯ë¤Ñ¼Æ¬ù¬°2-10¤u§@¤é(¤£§t¨Ò°²¤é)¡C
¹ÎÁʼƳ̧C¬° 20 ¥»¥H¤W
µû»ù¼Æ¡G
(½Ð±N·Æ¹«²¾¦Ü¬P¬P³B¶i¦æµû»ù)
¥Ø«e¥§¡µû»ù¡G
¤å¦r³sµ²
½Æ»s»yªk
¸ê®Æµ²ºc»Pºtºâªk¡G¨Ï¥ÎJAVA(²Ä¤»ª©)
¹Ï¤ù³sµ²
½Æ»s»yªk
¤À
¨É
¤º®e²¤¶
®ÑÄy¥Ø¿ý
¦PÃþ±ÀÂË
¸ê料結構»P演算法¡G使用JAVA(第六版) 本書特¦â 1.本書為Goodrich¡BTamassia»PGoldwasser累積多年經Åç¡A根據JAVA 7.0程式»y¨¥之»Ý求¡A所撰寫Ãö於¸ê料結構»P演算法之書籍¡C 2.書中程式碼»P例ÃD均¯à將JAVA7.0版本之特¦â呈現出來¡C 3.³z¹L書中的圖片¡A清晰的¸Ñ»¡¸ê料結構»P演算法的Æ[念¡C 4.ÂÇ由數百個精¿ï的習ÃD¡A以增強ŪªÌ暸¸Ñ概念¡C 5.新增符合目前科技發展的專ÃD研究ÃD目¡C 內容簡介 本書為Goodrich¡BTamassia»PGoldwasser累積多年經Åç¡A根據JAVA 7.0程式»y¨¥之»Ý求¡A所撰寫Ãö於¸ê料結構»P演算法之書籍¡C內容架構完整¡A¹d細Ãû¿ò¡C並³z¹L書中的圖片及教學網站的¸Ñ»¡使ŪªÌ清楚了¸Ñ¸ê料結構»P演算法的Æ[念¡C並ªþ有精¿ï習ÃD¡A½Ò後立即½Æ習¡A加強實力¡C
¥Ø¿ý Chapter¡@1 Javaµ{¦¡°ò¦ 1.1 ªì¨B¡]Preliminaries¡^ 1.1.1 °ò¥»«¬ºA¡]Base Types¡^ 1.2 ª«¥ó©MÃþ§O¡]Objects and Classes¡^ 1.2.1 «Ø¥ß©M¨Ï¥Îª«¥ó¡]Creating and Using Objects¡^ 1.2.2 ©w¸qÃþ§O¡]Defining a Class¡^ 1.3 ¯S®í«¬ºA¡]Special Types¡^ 1.4 Java ¹Bºâ¦¡¡]Java Expressions¡^ 1.4.1 ¦r±¤å¦r¡]Literals¡^ 1.4.2 ¹Bºâ¤l¡]Operators¡^ 1.4.3 «¬ºAÂà´«¡]Type Conversions¡^ 1.5 ±±¨î¬yµ{¡]Control Flow¡^ 1.5.1 If©MSwitch±Ôz¡]The If and Switch Statements¡^ 1.5.2 °j°é¡]Loops¡^ 1.5.3 Å㦡±±¨î¬y±Ôz¡]Explicit Control-Flow Statements¡^ 1.6 ¿é¤J©M¿é¥X¡]Input and Output¡^ 1.7 Java ®M¥ó¡]Java Packages¡^ 1.8 ½s¼gJava µ{¦¡¡]Writing a Java Program¡^ 1.8.1 ³]p¡]Design¡^ 1.8.2 µêÀÀµ{¦¡½X¡]Pseudocode¡^ 1.8.3 ¼¶¼gµ{¦¡¡]Coding¡^ 1.8.4 ¤å¥ó©M¼Ë¦¡¡]Documentation and Style¡^ 1.8.5 ´ú¸Õ©M°£¿ù¡]Testing and Debugging¡^ 1.9 ²ßÃD Chapter 2 ª«¥ó¾É¦V³]p 2.1 ¥Ø¼Ð¡Bì«h»P³]p¼Ò¦¡¡]Goals, Principles, and Patterns¡^ 2.1.1 ª«¥ó¾É¦V³]p¥Ø¼Ð¡]Object-Oriented Design Goals¡^ 2.1.2 ª«¥ó¾É¦V³]pì«h¡]Object-Oriented Design Principles¡^ 2.1.3 ³]p¼Ò¦¡¡]Design Patterns¡^ 2.2 Ä~©Ó¡]Inheritance¡^ 2.2.1 Credit CardÃþ§OÂX®i¡]Extending the CreditCard Class¡^ 2.2.2 ¦h«¬»P°ÊºA°t¸m¡]Polymorphism and Dynamic Dispatch¡^ 2.2.3 Ä~©Ó¶¥¼h¡]Inheritance Hierarchies¡^ 2.3 ¤¶±»P©â¶HÃþ§O¡]Interfaces and Abstract Classes¡^ 2.3.1 java¤¤ªº¤¶±¡]Interfaces in Java¡^ 2.3.2 ¤¶±ªº¦h«Ä~©Ó¡]Multiple Inheritance for Interfaces¡^ 2.3.3 ©â¶HÃþ§O¡]Abstract Classes¡^ 2.4 ²§±`¡]Exceptions¡^ 2.4.1 ®·®»²§±`¡]Catching Exceptions¡^ 2.4.2 ©ß¥X²§±`¡]Throwing Exceptions¡^ 2.4.3 Java ²§±`¶¥¼h¡]Java¡¦s Exception Hierarchy¡^ 2.5 Â૬»Pªx«¬¡]Casting and Generics¡^ 2.5.1 Â૬¡]Casting¡^ 2.5.2 ªx«¬¡]Generics¡^ 2.6 ±_ª¬Ãþ§O¡]Nested Classes¡^ 2.7 ²ßÃD Chapter 3 °}¦C»PÃìµ²¦ê¦C 3.1 °}¦Cªº¹ê»Ú¥Îªk¡]Practical Uses of Arrays¡^ 3.1.1 ¦b°}¦C¦s©ñ¹CÀ¸°O¿ý¡]Storing Game Entries in an Array¡^ 3.1.2 °}¦C±Æ§Ç¡]Sorting an Array¡^ 3.1.3 ¥Î©ó°}¦CÀH¾÷¼ÆÈªºjava.util¤èªk¡]java.util Methods for Arrays and Random Numbers¡^ 3.1.4 ¨Ï¥Î¦r¦ê©M¦r¤¸°}¦CªºÂ²³æ±K½X¾Ç¡]Simple Cryptography with Strings and Character Arrays¡^ 3.1.5 ¤Gºû°}¦C©M©w¦ì¹CÀ¸¡]Two-Dimensional Arrays and Positional Games¡^ 3.2 ³æ¦VÃìµ²¦ê¦C¡]Singly Linked Lists¡^ 3.2.1 ¹ê²{³æ¦VÃìµ²¦ê¦C¡]Implementing a Singly Linked List Class¡^ 3.3 Àôª¬Ãìµ²¦ê¦C¡]Circularly Linked Lists¡^ 3.3.1 ´`Àô¦¡±Æµ{¡]Round-Robin Scheduling¡^ 3.3.2 ³]p»P¹ê²{Àôª¬Ãìµ²¦ê¦C¡]Designing and Implementing a Circularly Linked List¡^ 3.4 Âù¦VÃìµ²¦ê¦C¡]Doubly Linked Lists¡^ 3.4.1 ¹ê²{Âù¦VÃìµ²¦ê¦C¡]Implementing a Doubly Linked List Class¡^ 3.5 ´ú¸Õ¬Ûµ¥©Ê¡]Testing for Equality¡^ 3.5.1 ´ú¸Õ°}¦Cªº¬Ûµ¥©Ê¡]Equivalence Testing with Arrays¡^ 3.5.2 ´ú¸ÕÃìµ²¦ê¦Cªº¬Ûµ¥©Ê¡]Equivalence Testing with Linked Lists¡^ 3.6 ½Æ»s¸ê®Æµ²ºc¡]Copying Data Structures¡^ 3.6.1 ½Æ»s°}¦C¡]Cloning Arrays¡^ 3.6.2 ½Æ»sÃìµ²¦ê¦C¡]Cloning Linked Lists¡^ 3.7 ²ßÃD Chapter 4 ¤ÀªR¤u¨ã 4.1 ¹êÃÒ¤ÀªR¡]Empirical Analysis¡^ 4.1.1¶W¶V¹êÅç¤ÀªR¡]Moving Beyond Experimental Analysis¡^ 4.2 ±`¥Î¼Æ¾Ç¨ç¦¡¡]Common Mathematical Functions¡^ 4.2.1¤ñ¸û¦¨ªø³t²v¡]Comparing Growth Rates¡^ 4.3 Big-Oh ªí¥Üªk¡]Big-Oh Notation¡^ 4.3.1©w¸qBig-Oh²Å¸¹¡]Defining the ¡§Big-Oh¡¨ Notation¡^ 4.3.2¤ñ¸û¤ÀªR¡]Comparative Analysis¡^ 4.3.3ºtºâªk¤ÀªR½d¨Ò¡]Examples of Algorithm Analysis¡^ 4.4 ÃÒ©ú¤èªk¡]Proof Methods¡^ 4.4.1 ¹ê¨ÒÃÒ©ú¡]By Example¡^ 4.4.2 ¤Ï¦VÃÒ©úªk¡]The Contra Attack¡^ 4.4.3 Âk¯Çªk¤Î°j°é¤£Åܦ¡¡]Induction and Loop Invariants¡^ 4.5 ²ßÃD Chapter 5 »¼°j 5.1 »¼°j°ò¦¡]Foundations of Recursion¡^ 5.1.1 ¶¥¼¨ç¼Æ¡]The Factorial Function¡^ 5.1.2 ´yø^¨î¤Ø¡]Drawing an English Ruler¡^ 5.1.3 ¤G¤¸·j´M¡]Binary Search¡^ 5.1.4 Àɮרt²Î¡]File Systems¡^ 5.2 »¼°j¤ÀªR¡]Recursive Analysis¡^ 5.3 »¼°jªºÀ³¥Î¡]Applications of Recursion¡^ 5.3.1 ½u©Ê»¼°j¡]Linear Recursion¡^ 5.3.2 ¤G¤¸»¼°j¡]Binary Recursion¡^ 5.3.3 ¦h«»¼°j (Multiple Recursion ) 5.4 ¨Ï¥Î»¼°j¡]Using Recursion¡^ 5.5 »¼°jªº³´¨À¡]Pitfalls of Recursion¡^ 5.5.1 Java¤¤ªº³Ì¤j»¼°j²`«×¡]Maximum Recursive Depth in Java¡^ 5.6 ²ßÃD Chapter 6 °ïÅ|»P¦î¦C 6.1 °ïÅ|¡]Stacks¡^ 6.1.1 °ïÅ|©â¶H¸ê®Æ«¬ºA¡]The Stack Abstract Data Type¡^ 6.1.2 ¥Î°}¦C§¹¦¨ªºÂ²³æ°ïÅ|¹ê§@¡]A Simple Array-Based Stack Implementation¡^ 6.1.3 ¥ÎÃìµ²¦ê¦C§¹¦¨°ïÅ|¹ê§@¡]Implementing a Stack with a Singly Linked List¡^ 6.1.4 ¬A¸¹¤ÎHTML ¼ÐÅÒ°t¹ï¡]Matching Parentheses and HTML Tags¡^ 6.2 ¦î¦C¡]Queues¡^ 6.2.1 ¦î¦C©â¶H¸ê®Æ«¬ºA¡]The Queue Abstract Data Type¡^ 6.2.2 §Q¥Î°}¦C§¹¦¨¦î¦C¹ê§@¡]Array-Based Queue Implementation¡^ 6.2.3 ¨Ï¥Î³æ¦VÃìµ²¦ê¦C¹ê§@¦î¦C¡]Implementing a Queue with a Singly Linked List¡^ 6.2.4 °j°é¦î¦C¡]A Circular Queue¡^ 6.3 Âù¦V¦î¦C¡]Double-Ended Queues¡^ 6.3.1 Âù¦V¦î¦C©â¶H¸ê®Æ«¬ºA¡]The Deque Abstract Data Type¡^ 6.3.2 Âù¦V¦î¦C¹ê§@¡]Implementing a Deque¡^ 6.3.3 Java¶°¦X¬[ºc¤¤ªºÂù¦V¦î¦C¡]Deques in the Java Collections Framework¡^ 6-4 ²ßÃD Chapter 7 ¦ê¦C©â¶H 7.1 ¦ê¦CADT¡]The List ADT¡^ 7.2 °ò©ó°}¦Cªº¦ê¦C¡]Array-based Lists¡^ 7.2.1 °ÊºA°}¦C¡]Dynamic Arrays¡^ 7.2.2 ¹ê²{°ÊºA°}¦C¡]Implementing a Dynamic Array¡^ 7.2.3 °ÊºA°}¦CªºÅu¾P¤ÀªR¡]Amortized Analysis of Dynamic Arrays¡^ 7.2.4 JavaªºStringBuilderÃþ§O 7.3 °ò©ó¦ì¸mªº¦ê¦C¡]Position-Based Lists¡^ 7.3.1 ¦ì¸m¡]Positions¡^ 7.3.2 ¦ì¸m¦ê¦C©â¶H¸ê®Æ«¬ºA¡]The Positional List Abstract Data Type¡^ 7.3.3 Âù¦VÃìµ²¦ê¦C¹ê²{¡]Doubly Linked List Implementation¡^ 7.4 ¡¥N¾¹¡]Iterators¡^ 7.4.1 ¥i¡¥N¤¶±©MJavaªºFor-Each°j°é¡]The Iterable Interface and Java¡¦s For-Each Loop¡^ 7.4.2 ¹ê²{¡¥N¾¹¡]Implementing Iterators¡^ 7.5 ¸s¶°¬[ºc¡]The Collections Framework¡^ 7.5.1 ¦C¥XJava¤¤ªº¡¥N¾¹¡]List Iterators in Java¡^ 7.5.2 »PPositional List ADT°µ¤ñ¸û¡]Comparison to Our Positional List ADT¡^ 7.5.3 Java¸s¶°¬[ºc¤¤°ò©ó¦ê¦Cªººtºâªk¡]List-Based Algorithms in the Java Collections Framework¡^ 7.6 ²ßÃD Chapter 8 ¾ðµ²ºc 8.1 ¾ðªº©w¸q©M©Ê½è¡]Trees Definitions and Properties¡^ 8.1.1 ¾ð©â¶H¸ê®Æ«¬ºA¡]The Tree Abstract Data Type¡^ 8.1.2 pºâ²`«×©M°ª«×¡]Computing Depth and Height¡^ 8.2 ¤G¤¸¾ð¡]Binary Trees¡^ 8.2.1 ¤G¤¸¾ð©â¶H¸ê®Æ«¬ºA¡]The Binary Tree Abstract Data Type¡^ 8.2.2 ¤G¤¸¾ðªº©Ê½è¡]Properties of Binary Trees¡^ 8.3 ¾ðªºªí¥Ü¤è¦¡¡]Tree Representations¡^ 8.3.1 ¤G¤¸¾ðªºÃìµ²µ²ºc¡]Linked Structure for Binary Trees¡^ 8.3.2 °ò©ó°}¦Cªº¤G¤¸¾ðªí¥Ü¤è¦¡¡]Array-Based Representation of a Binary Tree¡^ 8.3.3 ¤@¯ë¾ðªºÃìµ²µ²ºc¡]Linked Structure for General Trees¡^ 8.4 ¾ð¹M³Xºtºâªk¡]Tree Traversal Algorithms¡^ 8.4.1 ¤@¯ë¾ðªº«e§Ç©M«á§Ç¹M³X¡]Preorder and Postorder Traversals of General Trees¡^ 8.4.2 ¼s«×Àu¥ý¾ð¹M³X¡]Breadth-First Tree Traversal¡^ 8.4.3 ¤G¤¸¾ðªº¤¤§Ç¹M³X¡]Inorder Traversal of a Binary Tree¡^ 8.4.4 ¦bJava¤¤¹ê²{¾ðªº¹M³X¡]Implementing Tree Traversals in Java¡^ 8.4.5 ¾ð¹M³XªºÀ³¥Î¡]Applications of Tree Traversals¡^ 8.4.6 ¼Ú©Ô¤§®È¡]Euler Tours¡^ 8.5 ²ßÃD Chapter 9 °ï¿n©MÀu¥ý¦î¦C 9.1 Àu¥ý¦î¦C©â¶H¸ê®Æ«¬ºA¡]The Priority Queue Abstract Data Type¡^ 9.1.1 Àu¥ý¨Æ¶µ¡]Priorities¡^ 9.1.2 Àu¥ý¦î¦CADT¡]The Priority Queue ADT¡^ 9.2 ¹ê¬IÀu¥ý¦î¦C¡]Implementing a Priority Queue¡^ 9.2.1 ¶µ¥Ø½Æ¦X¡]The Entry Composite¡^ 9.2.2 ¨Ï¥Î¥þ§Ç¤ñ¸ûÁäÈ¡]Comparing Keys with Total Orders¡^ 9.2.3 AbstractPriorityQueue°ò¦Ãþ§O¡]The AbstractPriorityQueue Base Class¡^ 9.2.4 ¨Ï¥Î¥¼±Æ§Çªº¦ê¦C¹ê²{Àu¥ý¦î¦C¡]Implementing a Priority Queue with an Unsorted List¡^ 9.2.5 ¨Ï¥Î±Æ§Ç¦ê¦C¹ê²{Àu¥ý¦î¦C¡]Implementing a Priority Queue with a Sorted List¡^1 9.3 °ï¿n¡]Heaps¡^ 9.3.1 °ï¿n¸ê®Æµ²ºc¡]The Heap Data Structure¡^ 9.3.2 ¨Ï¥Î°ï¿n¹ê²{Àu¥ý¦î¦C¡]Implementing a Priority Queue with a Heap¡^ 9.3.3 °ò©ó°ï¿nªºÀu¥ý¦î¦Cªº¤ÀªR¡]Analysis of a Heap-Based Priority Queue¡^ 9.3.4 ¦Û¤U¦Ó¤Wªº°ï¿nºc³y ¡]Bottom-Up Heap Construction¡^ 9.3.5 ¨Ï¥Îjava.util.PriorityQueueÃþ§O 9.4 ¨Ï¥ÎÀu¥ý¦î¦C±Æ§Ç¡]Sorting with a Priority Queue¡^ 9.4.1 ¿ï¾Ü±Æ§Ç©M´¡¤J±Æ§Ç¡]Selection-Sort and Insertion-Sort¡^ 9.4.2 °ï¿n±Æ§Ç¡]Heap-Sort¡^ 9.5 ¾AÀ³©ÊÀu¥ý¦î¦C¡]Adaptable Priority Queues¡^ 9.5.1 ¦ì¸m·Pª¾¶µ¥Ø¡]Location-Aware Entries¡^ 9.5.2 ¹ê²{¾AÀ³©ÊÀu¥ý¦î¦C¡]Implementing an Adaptable Priority Queue¡^ 9.6 ²ßÃD Chapter 10 Âø´êªí¡BMAP»P¸õÅD¦ê¦C 10.1 Map ©â¶H¸ê®Æ«¬ºA¡]The Map Abstract Data Type¡^ 10.1.1 Map ADT 10.1.2 À³¥Î¡Gp¼Æ³æ¦rÀW²v¡]Application: Counting Word Frequencies¡^ 10.1.3 AbstractMap°ò¦Ãþ§O¡]An AbstractMap Base Class¡^ 10.1.4 ²³æªº¥¼±Æ§Çmap¹ê§@¡]A Simple Unsorted Map Implementation¡^ 10.2 Âø´ê¡]Hashing¡^ 10.2.1 Âø´ê¨ç¼Æ¡]Hash Functions¡^ 10.2.2 ¸I¼²³B²z¤è®×¡]Collision-Handling Schemes¡^ 10.2.3 t¸ü¦]¤l¡A«²Õ©M®Ä²v¡]Load Factors, Rehashing, and Efficiency¡^ 10.2.4 JavaÂø´êªí¹ê§@¡]Java Hash Table Implementation¡^ 10.3 ±Æ§Ç¹Ï©â¶H¸ê®Æ«¬ºA¡]The Sorted Map Abstract Data Type¡^ 10.3.1 ±Æ§Ç·j´Mªí¡]Sorted Search Tables¡^ 10.3.2 ±Æ§ÇmapªºÀ³¥Î¡]Applications of Sorted Maps¡^ 10.4 ¸õÅD¦ê¦C¡]Skip Lists¡^ 10.4.1 ¸õÅD¦ê¦C¤¤ªº·j´M©M§ó·s¾Þ§@¡]Search and Update Operations in a Skip List¡^ 10.4.2 ¸õÅD¦ê¦Cªº¾÷²v¤ÀªR¡] Probabilistic Analysis of Skip Lists¡^ 10.5 Sets¡B Multisets¡B©M Multimaps 10.5.1 Set ADT¡]The Set ADT¡^ 10.5.2 Multiset ADT 10.5.3 Multimap ADT 10.6 ²ßÃD Chapter 11 ·j´M¾ðµ²ºc 11.1 ¤G¤¸·j´M¾ð¡]Binary Search Trees¡^ 11.1.1 ¦b¤G¤¸·j´M¾ð¤¤·j´M¡]Searching Within a Binary Search Tree¡^ 11.1.2 ´¡¤J©M§R°£¡]Insertions and Deletions¡^ 11.1.3 Java¹ê§@¡]Java Implementation¡^ 11.1.4 ¤G¤¸·j´M¾ðªº®Ä¯à¡]Performance of a Binary Search Tree¡^ 11.2 ¥¿Å·j´M¾ð¡]Java Framework for Balancing Search Trees¡^ 11.2.1 ¥Î©ó¥¿Å·j´M¾ðªºJava¬[ºc¡]Java Framework for Balancing Search Trees¡^ 11.3 AVL ¾ð¡]AVL Trees¡^ 11.3.1 §ó·s¾Þ§@¡]Update Operations¡^ 11.3.2 Java¹ê§@¡]Java Implementation¡^ 11.4 (2,4) ¾ð 11.4.1 ¦h¸ô·j´M¾ð¡]Multiway Search Trees¡^ 11.4.2 (2,4)¾ð¾Þ§@¡](2,4)-Tree Operations¡^ 11.5 ¬õ¶Â¾ð¡]Red-Black Trees¡^ 11.5.1 ¬õ¶Â¾ð¾Þ§@¡]Red-Black Tree Operations¡^ 11.5.2 Java¹ê§@¡]Java Implementation¡^ 11.6 ¦ù®i¾ð¡]Splay Trees¡^ 11.6.1 ¦ù®i¡]Splaying¡^ 11.6.2 ¦ó®É¦ù®i¡]When to Splay¡^ 11.6.3 Java¹ê§@¡]Java Implementation¡^ 11.6.4 ¦ù®iÅu¾P¤ÀªR¡]Amortized Analysis of Splaying¡^ 11.7 ²ßÃD Chapter 12 ¦r¦ê»P°ÊºA³W¹º 12.1 §Ç¨¥¡]Preliminaries¡^ 12.1.1 ¤å¦r¦r¦ê²Å¸¹¡]Notations for Character Strings¡^ 12.2 ¼Ë¦¡- ¤Ç°tºtºâªk¡]Pattern-Matching Algorithms¡^ 12.2.1 ¼É¤Oªk¡]Brute Force¡^ 12.2.2 Boyer-Mooreºtºâªk¡]The Boyer-Moore Algorithm¡^ 12.2.3 Knuth-Morris-Prattºtºâªk 12.3 Tries ¾ð¡]Tries¡^ 12.3.1 ¼Ð·Çtries ¾ð¡]Standard Tries¡^ 12.3.2 À£ÁYtries ¡]Compressed Tries¡^ 12.3.3 ¦r§Àtries ¡]Suffix Tries¡^ 12.3.4 ·j´M¤ÞÀº¯Á¤Þ¡]Search Engine Indexing¡^ 12.4 ¤å¦rÀ£ÁY©M³g°ýªk¡]Text Compression and the Greedy Method¡^ 12.4.1 ÀN¤Ò°Ò½s½Xºtºâªk¡]The Huffman Coding Algorithm¡^ 12.4.2 ³g°ýªk¡]The Greedy Method¡^ 12.5 °ÊºA³W¹º¡]Dynamic Programming¡^ 12.5.1 ¯x°}Ã켪k¡]Matrix Chain-Product¡^ 12.5.2 DNA©M¤å¦r§Ç¦C®Õ¹ï¡]DNA and Text Sequence Alignment¡^ 12.6 ²ßÃD Chapter 13 ±Æ§Ç©M¿ï¾Ü 13.1 ¦X¨Ö±Æ§Ç¡]Merge-Sort¡^ 13.1.1 ¦UÓÀ»¯}ªk¡]Divide-and-Conquer¡^ 13.1.2 °ò©ó°}¦CªºMerge-Sort¹ê²{¡]Array-Based Implementation of Merge-Sort¡^ 13.1.3 ¦X¨Ö±Æ§Çªº°õ¦æ®É¶¡¡]The Running Time of Merge-Sort¡^ 13.1.4 ¦X¨Ö±Æ§Ç©M»¼°j¤èµ{¦¡¡]Merge-Sort and Recurrence Equations¡^ 13.1.5 ¦X¨Ö±Æ§Çªº¥tÃþ¹ê²{¡]Alternative Implementations of Merge-Sort¡^ 13.2 §Ö³t±Æ§Ç¡]Quick-Sort¡^ 13.2.1 ÀH¾÷§Ö³t±Æ§Ç¡]Randomized Quick-Sort¡^ 13.2.2 §Ö³t±Æ§Çªº¨ä¥L³Ì¨Î¤Æ¡]Additional Optimizations for Quick-Sort¡^ 13.3 ³q¹Lºtºâªk¯S©Ê¬ã¨s±Æ§Ç¡]Studying Sorting through an Algorithmic Lens¡^ 13.3.1 ±Æ§Çªº®É¶¡¤U¡]Lower Bound for Sorting¡^ 13.3.2 ½u©Ê®É¶¡±Æ§Ç¡G±í¤l±Æ§Ç©M±Æ§Ç¡]Linear-Time Sorting: Bucket-Sort and Radix- Sort¡^ 13.4 ¤ñ¸û±Æ§Çºtºâªk¡]Comparing Sorting Algorithms¡^ 13.5 ¿ï¾Ü¡]Selection¡^ 13.5.1 ×°Å©M·j¯Á¡]Prune-and-Search¡^ 13.5.2 ÀH¾÷§Ö³t¿ï¾Ü¡]Randomized Quick-Select¡^ 13.5.3 ¤ÀªRÀH¾÷§Ö³t¿ï¾Ü¡]Analyzing Randomized Quick-Select¡^ 13.6 ²ßÃD Chapter 14 ¹Ï 14.1 ¹Ï¡]Graphs¡^ 14.1.1 ¹ÏADT ¡]The Graph ADT¡^ 14.2 ¹Ïªº¸ê®Æµ²ºc¡]Data Structures for Graphs¡^ 14.2.1 Ãä¦ê¦Cµ²ºc¡]Edge List Structure¡^ 14.2.2 ¾F±µ¦ê¦Cµ²ºc¡]Adjacency List Structure¡^ 14.2.3 ¾F±µMapµ²ºc¡]Adjacency Map Structure¡^ 14.2.4 ¾F±µ¯x°}µ²ºc¡]Adjacency Matrix Structure¡^ 14.2.5 Java¹ê²{¡]Java Implementation¡^ 14.3 ¹Ïªº¹M³X¡]Graph Traversals¡^ 14.3.1 ²`«×Àu¥ý·j´M¡]Depth-First Search¡^ 14.3.2 DFSªº¹ê¬I©MÂX®i¡]DFS Implementation and Extensions¡^ 14.3.3 ¼e«×Àu¥ý·j¯Á¡]Breadth-First Search¡^ 14.4 »¼²¾«Ê³¬¡]Transitive Closure¡^ 14.5 ¦³¦VµLÀô¹Ï¡]Directed Acyclic Graphs¡^ 14.5.1 ©Ý¼³±Æ§Ç¡]Topological Ordering¡^ 14.6 ³Ìµu¸ô®|¡]Shortest Paths¡^ 14.6.1 ¥[Åv¹Ï¡]Weighted Graphs¡^ 14.6.2 Dijkstraºtºâªk¡]Dijkstra¡¦s Algorithm¡^ 14.7 ³Ì¤p¥Í¦¨¾ð¡]Minimum Spanning Trees¡^ 14.7.1 Prim-Jarn?kºtºâªk 14.7.2 Kruskalºtºâªk 14.7.3 ¤£¬Û¥æªº¤À°Ï©MÁp¦X¬d§äµ²ºc¡]Disjoint Partitions and Union-Find Structures¡^ 14.8 ²ßÃD Chapter 15 °O¾ÐÅéºÞ²z»P½d³ò¾ð 15.1 °O¾ÐÅéºÞ²z¡]Memory Management¡^ 15.1.1 JavaµêÀÀ¾÷¾¹¤¤ªº°ïÅ|¡]Stacks in the Java Virtual Machine¡^ 15.1.2 ¦b°O¾ÐÅé°ï¿n¤¤¤À°tªÅ¶¡¡]Allocating Space in the Memory Heap¡^ 15.1.3 ©U§£¦¬¶°¡]Garbage Collection¡^ 15.2 °O¾ÐÅé¼h¦¸µ²ºc©M§Ö¨ú¡]Memory Hierarchies and Caching¡^ 15.2.1 °O¾ÐÅé¨t²Î¡]Memory Systems¡^ 15.2.2 §Ö¨úµ¦²¤¡]Caching Strategies¡^ 15.3 ¥~³¡·j´M©MB ¾ð¡]External Searching and B-Trees¡^ 15.3.1 (a, b)¾ð 15.3.2 B¾ð 15.4 ¥~³¡°O¾ÐÅ鱯§Ç¡]External-Memory Sorting¡^ 15.4.1 ¦h¸ô¦X¨Ö¡]Multiway Merging¡^ 15.5 ½d³ò¾ð¡]Range Trees¡^ 15.5.1 ¤@ºû½d³ò·j´M¡]One-Dimensional Range Searching¡^ 15.5.2 ¤Gºû½d³ò¾ð¡]Two-Dimensional Range Trees¡^ 15.5.3 ¤Gºû½d³ò·j´M¡]Two-Dimensional Range Searching¡^ 15.5.4 ´¡¤J©M§R°£¡]Insertion and Deletion¡^ 15.5.5 Àu¥ý·j´M¾ð¡]Priority Search Trees¡^ 15.5.6 Àu¥ý½d³ò¾ð¡]Priority Range Trees¡^ 15.6 ²ßÃD Chapter¡@1 Javaµ{¦¡°ò¦ 1.1 ªì¨B¡]Preliminaries¡^ 1.1.1 °ò¥»«¬ºA¡]Base Types¡^ 1.2 ª«¥ó©MÃþ§O¡]Objects and Classes¡^ 1.2.1 «Ø¥ß©M¨Ï¥Îª«¥ó¡]Creating and Using Objects¡^ 1.2.2 ©w¸qÃþ§O¡]Defining a Class¡^ 1.3 ¯S®í«¬ºA¡]Special Types¡^ 1.4 Java ¹Bºâ¦¡¡]Java Expressions¡^ 1.4.1 ¦r±¤å¦r¡]Literals¡^ 1.4.2 ¹Bºâ¤l¡]Operators¡^ 1.4.3 «¬ºAÂà´«¡]Type Conversions¡^ 1.5 ±±¨î¬yµ{¡]Control Flow¡^ 1.5.1 If©MSwitch±Ôz¡]The If and Switch Statements¡^ 1.5.2 °j°é¡]Loops¡^ 1.5.3 Å㦡±±¨î¬y±Ôz¡]Explicit Control-Flow Statements¡^ 1.6 ¿é¤J©M¿é¥X¡]Input and Output¡^ 1.7 Java ®M¥ó¡]Java Packages¡^ 1.8 ½s¼gJava µ{¦¡¡]Writing a Java Program¡^ 1.8.1 ³]p¡]Design¡^ 1.8.2 µêÀÀµ{¦¡½X¡]Pseudocode¡^ 1.8.3 ¼¶¼gµ{¦¡¡]Coding¡^ 1.8.4 ¤å¥ó©M¼Ë¦¡¡]Documentation and Style¡^ 1.8.5 ´ú¸Õ©M°£¿ù¡]Testing and Debugging¡^ 1.9 ²ßÃD Chapter 2 ª«¥ó¾É¦V³]p 2.1 ¥Ø¼Ð¡Bì«h»P³]p¼Ò¦¡¡]Goals, Principles, and Patterns¡^ 2.1.1 ª«¥ó¾É¦V³]p¥Ø¼Ð¡]Object-Oriented Design Goals¡^ 2.1.2 ª«¥ó¾É¦V³]pì«h¡]Object-Oriented Design Principles¡^ 2.1.3 ³]p¼Ò¦¡¡]Design Patterns¡^ 2.2 Ä~©Ó¡]Inheritance¡^ 2.2.1 Credit CardÃþ§OÂX®i¡]Extending the CreditCard Class¡^ 2.2.2 ¦h«¬»P°ÊºA°t¸m¡]Polymorphism and Dynamic Dispatch¡^ 2.2.3 Ä~©Ó¶¥¼h¡]Inheritance Hierarchies¡^ 2.3 ¤¶±»P©â¶HÃþ§O¡]Interfaces and Abstract Classes¡^ 2.3.1 java¤¤ªº¤¶±¡]Interfaces in Java¡^ 2.3.2 ¤¶±ªº¦h«Ä~©Ó¡]Multiple Inheritance for Interfaces¡^ 2.3.3 ©â¶HÃþ§O¡]Abstract Classes¡^ 2.4 ²§±`¡]Exceptions¡^ 2.4.1 ®·®»²§±`¡]Catching Exceptions¡^ 2.4.2 ©ß¥X²§±`¡]Throwing Exceptions¡^ 2.4.3 Java ²§±`¶¥¼h¡]Java¡¦s Exception Hierarchy¡^ 2.5 Â૬»Pªx«¬¡]Casting and Generics¡^ 2.5.1 Â૬¡]Casting¡^ 2.5.2 ªx«¬¡]Generics¡^ 2.6 ±_ª¬Ãþ§O¡]Nested Classes¡^ 2.7 ²ßÃD Chapter 3 °}¦C»PÃìµ²¦ê¦C 3.1 °}¦Cªº¹ê»Ú¥Îªk¡]Practical Uses of Arrays¡^ 3.1.1 ¦b°}¦C¦s©ñ¹CÀ¸°O¿ý¡]Storing Game Entries in an Array¡^ 3.1.2 °}¦C±Æ§Ç¡]Sorting an Array¡^ 3.1.3 ¥Î©ó°}¦CÀH¾÷¼ÆÈªºjava.util¤èªk¡]java.util Methods for Arrays and Random Numbers¡^ 3.1.4 ¨Ï¥Î¦r¦ê©M¦r¤¸°}¦CªºÂ²³æ±K½X¾Ç¡]Simple Cryptography with Strings and Character Arrays¡^ 3.1.5 ¤Gºû°}¦C©M©w¦ì¹CÀ¸¡]Two-Dimensional Arrays and Positional Games¡^ 3.2 ³æ¦VÃìµ²¦ê¦C¡]Singly Linked Lists¡^ 3.2.1 ¹ê²{³æ¦VÃìµ²¦ê¦C¡]Implementing a Singly Linked List Class¡^ 3.3 Àôª¬Ãìµ²¦ê¦C¡]Circularly Linked Lists¡^ 3.3.1 ´`Àô¦¡±Æµ{¡]Round-Robin Scheduling¡^ 3.3.2 ³]p»P¹ê²{Àôª¬Ãìµ²¦ê¦C¡]Designing and Implementing a Circularly Linked List¡^ 3.4 Âù¦VÃìµ²¦ê¦C¡]Doubly Linked Lists¡^ 3.4.1 ¹ê²{Âù¦VÃìµ²¦ê¦C¡]Implementing a Doubly Linked List Class¡^ 3.5 ´ú¸Õ¬Ûµ¥©Ê¡]Testing for Equality¡^ 3.5.1 ´ú¸Õ°}¦Cªº¬Ûµ¥©Ê¡]Equivalence Testing with Arrays¡^ 3.5.2 ´ú¸ÕÃìµ²¦ê¦Cªº¬Ûµ¥©Ê¡]Equivalence Testing with Linked Lists¡^ 3.6 ½Æ»s¸ê®Æµ²ºc¡]Copying Data Structures¡^ 3.6.1 ½Æ»s°}¦C¡]Cloning Arrays¡^ 3.6.2 ½Æ»sÃìµ²¦ê¦C¡]Cloning Linked Lists¡^ 3.7 ²ßÃD Chapter 4 ¤ÀªR¤u¨ã 4.1 ¹êÃÒ¤ÀªR¡]Empirical Analysis¡^ 4.1.1¶W¶V¹êÅç¤ÀªR¡]Moving Beyond Experimental Analysis¡^ 4.2 ±`¥Î¼Æ¾Ç¨ç¦¡¡]Common Mathematical Functions¡^ 4.2.1¤ñ¸û¦¨ªø³t²v¡]Comparing Growth Rates¡^ 4.3 Big-Oh ªí¥Üªk¡]Big-Oh Notation¡^ 4.3.1©w¸qBig-Oh²Å¸¹¡]Defining the ¡§Big-Oh¡¨ Notation¡^ 4.3.2¤ñ¸û¤ÀªR¡]Comparative Analysis¡^ 4.3.3ºtºâªk¤ÀªR½d¨Ò¡]Examples of Algorithm Analysis¡^ 4.4 ÃÒ©ú¤èªk¡]Proof Methods¡^ 4.4.1 ¹ê¨ÒÃÒ©ú¡]By Example¡^ 4.4.2 ¤Ï¦VÃÒ©úªk¡]The Contra Attack¡^ 4.4.3 Âk¯Çªk¤Î°j°é¤£Åܦ¡¡]Induction and Loop Invariants¡^ 4.5 ²ßÃD Chapter 5 »¼°j 5.1 »¼°j°ò¦¡]Foundations of Recursion¡^ 5.1.1 ¶¥¼¨ç¼Æ¡]The Factorial Function¡^ 5.1.2 ´yø^¨î¤Ø¡]Drawing an English Ruler¡^ 5.1.3 ¤G¤¸·j´M¡]Binary Search¡^ 5.1.4 Àɮרt²Î¡]File Systems¡^ 5.2 »¼°j¤ÀªR¡]Recursive Analysis¡^ 5.3 »¼°jªºÀ³¥Î¡]Applications of Recursion¡^ 5.3.1 ½u©Ê»¼°j¡]Linear Recursion¡^ 5.3.2 ¤G¤¸»¼°j¡]Binary Recursion¡^ 5.3.3 ¦h«»¼°j (Multiple Recursion ) 5.4 ¨Ï¥Î»¼°j¡]Using Recursion¡^ 5.5 »¼°jªº³´¨À¡]Pitfalls of Recursion¡^ 5.5.1 Java¤¤ªº³Ì¤j»¼°j²`«×¡]Maximum Recursive Depth in Java¡^ 5.6 ²ßÃD Chapter 6 °ïÅ|»P¦î¦C 6.1 °ïÅ|¡]Stacks¡^ 6.1.1 °ïÅ|©â¶H¸ê®Æ«¬ºA¡]The Stack Abstract Data Type¡^ 6.1.2 ¥Î°}¦C§¹¦¨ªºÂ²³æ°ïÅ|¹ê§@¡]A Simple Array-Based Stack Implementation¡^ 6.1.3 ¥ÎÃìµ²¦ê¦C§¹¦¨°ïÅ|¹ê§@¡]Implementing a Stack with a Singly Linked List¡^ 6.1.4 ¬A¸¹¤ÎHTML ¼ÐÅÒ°t¹ï¡]Matching Parentheses and HTML Tags¡^ 6.2 ¦î¦C¡]Queues¡^ 6.2.1 ¦î¦C©â¶H¸ê®Æ«¬ºA¡]The Queue Abstract Data Type¡^ 6.2.2 §Q¥Î°}¦C§¹¦¨¦î¦C¹ê§@¡]Array-Based Queue Implementation¡^ 6.2.3 ¨Ï¥Î³æ¦VÃìµ²¦ê¦C¹ê§@¦î¦C¡]Implementing a Queue with a Singly Linked List¡^ 6.2.4 °j°é¦î¦C¡]A Circular Queue¡^ 6.3 Âù¦V¦î¦C¡]Double-Ended Queues¡^ 6.3.1 Âù¦V¦î¦C©â¶H¸ê®Æ«¬ºA¡]The Deque Abstract Data Type¡^ 6.3.2 Âù¦V¦î¦C¹ê§@¡]Implementing a Deque¡^ 6.3.3 Java¶°¦X¬[ºc¤¤ªºÂù¦V¦î¦C¡]Deques in the Java Collections Framework¡^ 6-4 ²ßÃD Chapter 7 ¦ê¦C©â¶H 7.1 ¦ê¦CADT¡]The List ADT¡^ 7.2 °ò©ó°}¦Cªº¦ê¦C¡]Array-based Lists¡^ 7.2.1 °ÊºA°}¦C¡]Dynamic Arrays¡^ 7.2.2 ¹ê²{°ÊºA°}¦C¡]Implementing a Dynamic Array¡^ 7.2.3 °ÊºA°}¦CªºÅu¾P¤ÀªR¡]Amortized Analysis of Dynamic Arrays¡^ 7.2.4 JavaªºStringBuilderÃþ§O 7.3 °ò©ó¦ì¸mªº¦ê¦C¡]Position-Based Lists¡^ 7.3.1 ¦ì¸m¡]Positions¡^ 7.3.2 ¦ì¸m¦ê¦C©â¶H¸ê®Æ«¬ºA¡]The Positional List Abstract Data Type¡^ 7.3.3 Âù¦VÃìµ²¦ê¦C¹ê²{¡]Doubly Linked List Implementation¡^ 7.4 ¡¥N¾¹¡]Iterators¡^ 7.4.1 ¥i¡¥N¤¶±©MJavaªºFor-Each°j°é¡]The Iterable Interface and Java¡¦s For-Each Loop¡^ 7.4.2 ¹ê²{¡¥N¾¹¡]Implementing Iterators¡^ 7.5 ¸s¶°¬[ºc¡]The Collections Framework¡^ 7.5.1 ¦C¥XJava¤¤ªº¡¥N¾¹¡]List Iterators in Java¡^ 7.5.2 »PPositional List ADT°µ¤ñ¸û¡]Comparison to Our Positional List ADT¡^ 7.5.3 Java¸s¶°¬[ºc¤¤°ò©ó¦ê¦Cªººtºâªk¡]List-Based Algorithms in the Java Collections Framework¡^ 7.6 ²ßÃD Chapter 8 ¾ðµ²ºc 8.1 ¾ðªº©w¸q©M©Ê½è¡]Trees Definitions and Properties¡^ 8.1.1 ¾ð©â¶H¸ê®Æ«¬ºA¡]The Tree Abstract Data Type¡^ 8.1.2 pºâ²`«×©M°ª«×¡]Computing Depth and Height¡^ 8.2 ¤G¤¸¾ð¡]Binary Trees¡^ 8.2.1 ¤G¤¸¾ð©â¶H¸ê®Æ«¬ºA¡]The Binary Tree Abstract Data Type¡^ 8.2.2 ¤G¤¸¾ðªº©Ê½è¡]Properties of Binary Trees¡^ 8.3 ¾ðªºªí¥Ü¤è¦¡¡]Tree Representations¡^ 8.3.1 ¤G¤¸¾ðªºÃìµ²µ²ºc¡]Linked Structure for Binary Trees¡^ 8.3.2 °ò©ó°}¦Cªº¤G¤¸¾ðªí¥Ü¤è¦¡¡]Array-Based Representation of a Binary Tree¡^ 8.3.3 ¤@¯ë¾ðªºÃìµ²µ²ºc¡]Linked Structure for General Trees¡^ 8.4 ¾ð¹M³Xºtºâªk¡]Tree Traversal Algorithms¡^ 8.4.1 ¤@¯ë¾ðªº«e§Ç©M«á§Ç¹M³X¡]Preorder and Postorder Traversals of General Trees¡^ 8.4.2 ¼s«×Àu¥ý¾ð¹M³X¡]Breadth-First Tree Traversal¡^ 8.4.3 ¤G¤¸¾ðªº¤¤§Ç¹M³X¡]Inorder Traversal of a Binary Tree¡^ 8.4.4 ¦bJava¤¤¹ê²{¾ðªº¹M³X¡]Implementing Tree Traversals in Java¡^ 8.4.5 ¾ð¹M³XªºÀ³¥Î¡]Applications of Tree Traversals¡^ 8.4.6 ¼Ú©Ô¤§®È¡]Euler Tours¡^ 8.5 ²ßÃD Chapter 9 °ï¿n©MÀu¥ý¦î¦C 9.1 Àu¥ý¦î¦C©â¶H¸ê®Æ«¬ºA¡]The Priority Queue Abstract Data Type¡^ 9.1.1 Àu¥ý¨Æ¶µ¡]Priorities¡^ 9.1.2 Àu¥ý¦î¦CADT¡]The Priority Queue ADT¡^ 9.2 ¹ê¬IÀu¥ý¦î¦C¡]Implementing a Priority Queue¡^ 9.2.1 ¶µ¥Ø½Æ¦X¡]The Entry Composite¡^ 9.2.2 ¨Ï¥Î¥þ§Ç¤ñ¸ûÁäÈ¡]Comparing Keys with Total Orders¡^ 9.2.3 AbstractPriorityQueue°ò¦Ãþ§O¡]The AbstractPriorityQueue Base Class¡^ 9.2.4 ¨Ï¥Î¥¼±Æ§Çªº¦ê¦C¹ê²{Àu¥ý¦î¦C¡]Implementing a Priority Queue with an Unsorted List¡^ 9.2.5 ¨Ï¥Î±Æ§Ç¦ê¦C¹ê²{Àu¥ý¦î¦C¡]Implementing a Priority Queue with a Sorted List¡^1 9.3 °ï¿n¡]Heaps¡^ 9.3.1 °ï¿n¸ê®Æµ²ºc¡]The Heap Data Structure¡^ 9.3.2 ¨Ï¥Î°ï¿n¹ê²{Àu¥ý¦î¦C¡]Implementing a Priority Queue with a Heap¡^ 9.3.3 °ò©ó°ï¿nªºÀu¥ý¦î¦Cªº¤ÀªR¡]Analysis of a Heap-Based Priority Queue¡^ 9.3.4 ¦Û¤U¦Ó¤Wªº°ï¿nºc³y ¡]Bottom-Up Heap Construction¡^ 9.3.5 ¨Ï¥Îjava.util.PriorityQueueÃþ§O 9.4 ¨Ï¥ÎÀu¥ý¦î¦C±Æ§Ç¡]Sorting with a Priority Queue¡^ 9.4.1 ¿ï¾Ü±Æ§Ç©M´¡¤J±Æ§Ç¡]Selection-Sort and Insertion-Sort¡^ 9.4.2 °ï¿n±Æ§Ç¡]Heap-Sort¡^ 9.5 ¾AÀ³©ÊÀu¥ý¦î¦C¡]Adaptable Priority Queues¡^ 9.5.1 ¦ì¸m·Pª¾¶µ¥Ø¡]Location-Aware Entries¡^ 9.5.2 ¹ê²{¾AÀ³©ÊÀu¥ý¦î¦C¡]Implementing an Adaptable Priority Queue¡^ 9.6 ²ßÃD Chapter 10 Âø´êªí¡BMAP»P¸õÅD¦ê¦C 10.1 Map ©â¶H¸ê®Æ«¬ºA¡]The Map Abstract Data Type¡^ 10.1.1 Map ADT 10.1.2 À³¥Î¡Gp¼Æ³æ¦rÀW²v¡]Application: Counting Word Frequencies¡^ 10.1.3 AbstractMap°ò¦Ãþ§O¡]An AbstractMap Base Class¡^ 10.1.4 ²³æªº¥¼±Æ§Çmap¹ê§@¡]A Simple Unsorted Map Implementation¡^ 10.2 Âø´ê¡]Hashing¡^ 10.2.1 Âø´ê¨ç¼Æ¡]Hash Functions¡^ 10.2.2 ¸I¼²³B²z¤è®×¡]Collision-Handling Schemes¡^ 10.2.3 t¸ü¦]¤l¡A«²Õ©M®Ä²v¡]Load Factors, Rehashing, and Efficiency¡^ 10.2.4 JavaÂø´êªí¹ê§@¡]Java Hash Table Implementation¡^ 10.3 ±Æ§Ç¹Ï©â¶H¸ê®Æ«¬ºA¡]The Sorted Map Abstract Data Type¡^ 10.3.1 ±Æ§Ç·j´Mªí¡]Sorted Search Tables¡^ 10.3.2 ±Æ§ÇmapªºÀ³¥Î¡]Applications of Sorted Maps¡^ 10.4 ¸õÅD¦ê¦C¡]Skip Lists¡^ 10.4.1 ¸õÅD¦ê¦C¤¤ªº·j´M©M§ó·s¾Þ§@¡]Search and Update Operations in a Skip List¡^ 10.4.2 ¸õÅD¦ê¦Cªº¾÷²v¤ÀªR¡] Probabilistic Analysis of Skip Lists¡^ 10.5 Sets¡B Multisets¡B©M Multimaps 10.5.1 Set ADT¡]The Set ADT¡^ 10.5.2 Multiset ADT 10.5.3 Multimap ADT 10.6 ²ßÃD Chapter 11 ·j´M¾ðµ²ºc 11.1 ¤G¤¸·j´M¾ð¡]Binary Search Trees¡^ 11.1.1 ¦b¤G¤¸·j´M¾ð¤¤·j´M¡]Searching Within a Binary Search Tree¡^ 11.1.2 ´¡¤J©M§R°£¡]Insertions and Deletions¡^ 11.1.3 Java¹ê§@¡]Java Implementation¡^ 11.1.4 ¤G¤¸·j´M¾ðªº®Ä¯à¡]Performance of a Binary Search Tree¡^ 11.2 ¥¿Å·j´M¾ð¡]Java Framework for Balancing Search Trees¡^ 11.2.1 ¥Î©ó¥¿Å·j´M¾ðªºJava¬[ºc¡]Java Framework for Balancing Search Trees¡^ 11.3 AVL ¾ð¡]AVL Trees¡^ 11.3.1 §ó·s¾Þ§@¡]Update Operations¡^ 11.3.2 Java¹ê§@¡]Java Implementation¡^ 11.4 (2,4) ¾ð 11.4.1 ¦h¸ô·j´M¾ð¡]Multiway Search Trees¡^ 11.4.2 (2,4)¾ð¾Þ§@¡](2,4)-Tree Operations¡^ 11.5 ¬õ¶Â¾ð¡]Red-Black Trees¡^ 11.5.1 ¬õ¶Â¾ð¾Þ§@¡]Red-Black Tree Operations¡^ 11.5.2 Java¹ê§@¡]Java Implementation¡^ 11.6 ¦ù®i¾ð¡]Splay Trees¡^ 11.6.1 ¦ù®i¡]Splaying¡^ 11.6.2 ¦ó®É¦ù®i¡]When to Splay¡^ 11.6.3 Java¹ê§@¡]Java Implementation¡^ 11.6.4 ¦ù®iÅu¾P¤ÀªR¡]Amortized Analysis of Splaying¡^ 11.7 ²ßÃD Chapter 12 ¦r¦ê»P°ÊºA³W¹º 12.1 §Ç¨¥¡]Preliminaries¡^ 12.1.1 ¤å¦r¦r¦ê²Å¸¹¡]Notations for Character Strings¡^ 12.2 ¼Ë¦¡- ¤Ç°tºtºâªk¡]Pattern-Matching Algorithms¡^ 12.2.1 ¼É¤Oªk¡]Brute Force¡^ 12.2.2 Boyer-Mooreºtºâªk¡]The Boyer-Moore Algorithm¡^ 12.2.3 Knuth-Morris-Prattºtºâªk 12.3 Tries ¾ð¡]Tries¡^ 12.3.1 ¼Ð·Çtries ¾ð¡]Standard Tries¡^ 12.3.2 À£ÁYtries ¡]Compressed Tries¡^ 12.3.3 ¦r§Àtries ¡]Suffix Tries¡^ 12.3.4 ·j´M¤ÞÀº¯Á¤Þ¡]Search Engine Indexing¡^ 12.4 ¤å¦rÀ£ÁY©M³g°ýªk¡]Text Compression and the Greedy Method¡^ 12.4.1 ÀN¤Ò°Ò½s½Xºtºâªk¡]The Huffman Coding Algorithm¡^ 12.4.2 ³g°ýªk¡]The Greedy Method¡^ 12.5 °ÊºA³W¹º¡]Dynamic Programming¡^ 12.5.1 ¯x°}Ã켪k¡]Matrix Chain-Product¡^ 12.5.2 DNA©M¤å¦r§Ç¦C®Õ¹ï¡]DNA and Text Sequence Alignment¡^ 12.6 ²ßÃD Chapter 13 ±Æ§Ç©M¿ï¾Ü 13.1 ¦X¨Ö±Æ§Ç¡]Merge-Sort¡^ 13.1.1 ¦UÓÀ»¯}ªk¡]Divide-and-Conquer¡^ 13.1.2 °ò©ó°}¦CªºMerge-Sort¹ê²{¡]Array-Based Implementation of Merge-Sort¡^ 13.1.3 ¦X¨Ö±Æ§Çªº°õ¦æ®É¶¡¡]The Running Time of Merge-Sort¡^ 13.1.4 ¦X¨Ö±Æ§Ç©M»¼°j¤èµ{¦¡¡]Merge-Sort and Recurrence Equations¡^ 13.1.5 ¦X¨Ö±Æ§Çªº¥tÃþ¹ê²{¡]Alternative Implementations of Merge-Sort¡^ 13.2 §Ö³t±Æ§Ç¡]Quick-Sort¡^ 13.2.1 ÀH¾÷§Ö³t±Æ§Ç¡]Randomized Quick-Sort¡^ 13.2.2 §Ö³t±Æ§Çªº¨ä¥L³Ì¨Î¤Æ¡]Additional Optimizations for Quick-Sort¡^ 13.3 ³q¹Lºtºâªk¯S©Ê¬ã¨s±Æ§Ç¡]Studying Sorting through an Algorithmic Lens¡^ 13.3.1 ±Æ§Çªº®É¶¡¤U¡]Lower Bound for Sorting¡^ 13.3.2 ½u©Ê®É¶¡±Æ§Ç¡G±í¤l±Æ§Ç©M±Æ§Ç¡]Linear-Time Sorting: Bucket-Sort and Radix- Sort¡^ 13.4 ¤ñ¸û±Æ§Çºtºâªk¡]Comparing Sorting Algorithms¡^ 13.5 ¿ï¾Ü¡]Selection¡^ 13.5.1 ×°Å©M·j¯Á¡]Prune-and-Search¡^ 13.5.2 ÀH¾÷§Ö³t¿ï¾Ü¡]Randomized Quick-Select¡^ 13.5.3 ¤ÀªRÀH¾÷§Ö³t¿ï¾Ü¡]Analyzing Randomized Quick-Select¡^ 13.6 ²ßÃD Chapter 14 ¹Ï 14.1 ¹Ï¡]Graphs¡^ 14.1.1 ¹ÏADT ¡]The Graph ADT¡^ 14.2 ¹Ïªº¸ê®Æµ²ºc¡]Data Structures for Graphs¡^ 14.2.1 Ãä¦ê¦Cµ²ºc¡]Edge List Structure¡^ 14.2.2 ¾F±µ¦ê¦Cµ²ºc¡]Adjacency List Structure¡^ 14.2.3 ¾F±µMapµ²ºc¡]Adjacency Map Structure¡^ 14.2.4 ¾F±µ¯x°}µ²ºc¡]Adjacency Matrix Structure¡^ 14.2.5 Java¹ê²{¡]Java Implementation¡^ 14.3 ¹Ïªº¹M³X¡]Graph Traversals¡^ 14.3.1 ²`«×Àu¥ý·j´M¡]Depth-First Search¡^ 14.3.2 DFSªº¹ê¬I©MÂX®i¡]DFS Implementation and Extensions¡^ 14.3.3 ¼e«×Àu¥ý·j¯Á¡]Breadth-First Search¡^ 14.4 »¼²¾«Ê³¬¡]Transitive Closure¡^ 14.5 ¦³¦VµLÀô¹Ï¡]Directed Acyclic Graphs¡^ 14.5.1 ©Ý¼³±Æ§Ç¡]Topological Ordering¡^ 14.6 ³Ìµu¸ô®|¡]Shortest Paths¡^ 14.6.1 ¥[Åv¹Ï¡]Weighted Graphs¡^ 14.6.2 Dijkstraºtºâªk¡]Dijkstra¡¦s Algorithm¡^ 14.7 ³Ì¤p¥Í¦¨¾ð¡]Minimum Spanning Trees¡^ 14.7.1 Prim-Jarn?kºtºâªk 14.7.2 Kruskalºtºâªk 14.7.3 ¤£¬Û¥æªº¤À°Ï©MÁp¦X¬d§äµ²ºc¡]Disjoint Partitions and Union-Find Structures¡^ 14.8 ²ßÃD Chapter 15 °O¾ÐÅéºÞ²z»P½d³ò¾ð 15.1 °O¾ÐÅéºÞ²z¡]Memory Management¡^ 15.1.1 JavaµêÀÀ¾÷¾¹¤¤ªº°ïÅ|¡]Stacks in the Java Virtual Machine¡^ 15.1.2 ¦b°O¾ÐÅé°ï¿n¤¤¤À°tªÅ¶¡¡]Allocating Space in the Memory Heap¡^ 15.1.3 ©U§£¦¬¶°¡]Garbage Collection¡^ 15.2 °O¾ÐÅé¼h¦¸µ²ºc©M§Ö¨ú¡]Memory Hierarchies and Caching¡^ 15.2.1 °O¾ÐÅé¨t²Î¡]Memory Systems¡^ 15.2.2 §Ö¨úµ¦²¤¡]Caching Strategies¡^ 15.3 ¥~³¡·j´M©MB ¾ð¡]External Searching and B-Trees¡^ 15.3.1 (a, b)¾ð 15.3.2 B¾ð 15.4 ¥~³¡°O¾ÐÅ鱯§Ç¡]External-Memory Sorting¡^ 15.4.1 ¦h¸ô¦X¨Ö¡]Multiway Merging¡^ 15.5 ½d³ò¾ð¡]Range Trees¡^ 15.5.1 ¤@ºû½d³ò·j´M¡]One-Dimensional Range Searching¡^ 15.5.2 ¤Gºû½d³ò¾ð¡]Two-Dimensional Range Trees¡^ 15.5.3 ¤Gºû½d³ò·j´M¡]Two-Dimensional Range Searching¡^ 15.5.4 ´¡¤J©M§R°£¡]Insertion and Deletion¡^ 15.5.5 Àu¥ý·j´M¾ð¡]Priority Search Trees¡^ 15.5.6 Àu¥ý½d³ò¾ð¡]Priority Range Trees¡^ 15.6 ²ßÃD
µø¥úÃIJz¾Ç(²Ä¤ª©)
°]°ÈºÞ²z²z½×»PÀ³¥Î(
·s½sÀô¹Ò¬rª«¾Ç(²Ä¤G
¥Í¬¡¬ì§Þ(²Ä¤»ª©)
¤º¥~¬ìÅ@²z§Þ³N(²Ä¤Q
Javaµ{¦¡³]p¤Jªù
²{¥N°Ó¥Î^¤å¢w¢w®Ñ«H
ÂåÀø«æ±Ï(²Ä¤Gª©)
ªÅ®ð¦¾¬V¨¾¨î¡G²z½×¤Î
ºñ¦â¯à·½¬ì§Þ(²Ä¤»ª©
¬°¤F«O»Ù±zªºÅv¯q¡A·sµ·¸ôºô¸ô®Ñ©±©ÒÁʶRªº°Ó«~§¡¨É¦³¨ì³f¤C¤ÑªºÅ²½à´Á¡]§t¨Ò°²¤é¡^¡C°h¦^¤§°Ó«~¥²¶·©óŲ½à´Á¤º±H¦^¡]¥H¶lÂW©Î¦¬°õÁp¬°¾Ì¡^¡A¥B°Ó«~¥²¶·¬O¥þ·sª¬ºA»P§¹¾ã¥]¸Ë(°Ó«~¡Bªþ¥ó¡B¤º¥~¥]¸Ë¡BÀH³f¤å¥ó¡BÃØ«~µ¥)¡A§_«h®¤¤£±µ¨ü°h³f¡C