O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

A Practical Guide to Data Structures and Algorithms using Java

Book Description

Although traditional texts present isolated algorithms and data structures, they do not provide a unifying structure and offer little guidance on how to appropriately select among them. Furthermore, these texts furnish little, if any, source code and leave many of the more difficult aspects of the implementation as exercises. A fresh alternative to conventional data structures and algorithms books, A Practical Guide to Data Structures and Algorithms using Java presents comprehensive coverage of fundamental data structures and algorithms in a unifying framework with full implementation details. Recognizing that software development is a top-down process, this applications-centered book provides careful guidance to students and practitioners.

Complete and thoroughly integrated Java implementations expose key differences among a wide range of important data structures, including many useful abstract data types not provided in standard Java libraries. Fundamental algorithms appear within the context of their supporting data structures. Case studies, examples, decision trees, and comparison charts throughout the stylized presentation illustrate and support an efficient methodology for the careful selection and application of data structures and algorithms. Appendices summarize major features of the Java programming language, introduce asymptotic notation and complexity analysis, and discuss design patterns applied in the book.

A true marriage of theory and practice, this book sets a new standard as a comprehensive practical guide to data structures and algorithms. Practitioners and students will reach for this book often to quickly identify the best data structure or algorithm for their applications.

Table of Contents

  1. Front cover (1/2)
  2. Front cover (2/2)
  3. Contents (1/4)
  4. Contents (2/4)
  5. Contents (3/4)
  6. Contents (4/4)
  7. Preface
  8. Acknowledgments
  9. Authors
  10. Part I. INTRODUCTION
  11. Chapter 1. Design Principles (1/3)
  12. Chapter 1. Design Principles (2/3)
  13. Chapter 1. Design Principles (3/3)
  14. Chapter 2. Selecting an Abstract Data Type (1/4)
  15. Chapter 2. Selecting an Abstract Data Type (2/4)
  16. Chapter 2. Selecting an Abstract Data Type (3/4)
  17. Chapter 2. Selecting an Abstract Data Type (4/4)
  18. Chapter 3. How to Use This Book (1/2)
  19. Chapter 3. How to Use This Book (2/2)
  20. Part II. COLLECTION DATASTRUCTURES ANDALGORITHMS
  21. Chapter 4. Part II Organization
  22. Chapter 5. Foundations (1/5)
  23. Chapter 5. Foundations (2/5)
  24. Chapter 5. Foundations (3/5)
  25. Chapter 5. Foundations (4/5)
  26. Chapter 5. Foundations (5/5)
  27. Chapter 6 .Partition ADT and the Union-Find Data Structure (1/4)
  28. Chapter 6 .Partition ADT and the Union-Find Data Structure (2/4)
  29. Chapter 6 .Partition ADT and the Union-Find Data Structure (3/4)
  30. Chapter 6 .Partition ADT and the Union-Find Data Structure (4/4)
  31. Chapter 7. Collection of Elements (1/2)
  32. Chapter 7. Collection of Elements (2/2)
  33. Chapter 8. Abstract Collection (1/3)
  34. Chapter 8. Abstract Collection (2/3)
  35. Chapter 8. Abstract Collection (3/3)
  36. Chapter 9. Positional Collection ADT (1/3)
  37. Chapter 9. Positional Collection ADT (2/3)
  38. Chapter 9. Positional Collection ADT (3/3)
  39. Chapter 10. Abstract Positional Collection
  40. Chapter 11. Array Data Structure (1/10)
  41. Chapter 11. Array Data Structure (2/10)
  42. Chapter 11. Array Data Structure (3/10)
  43. Chapter 11. Array Data Structure (4/10)
  44. Chapter 11. Array Data Structure (5/10)
  45. Chapter 11. Array Data Structure (6/10)
  46. Chapter 11. Array Data Structure (7/10)
  47. Chapter 11. Array Data Structure (8/10)
  48. Chapter 11. Array Data Structure (9/10)
  49. Chapter 11. Array Data Structure (10/10)
  50. Chapter 12. Circular Array Data Structure (1/3)
  51. Chapter 12. Circular Array Data Structure (2/3)
  52. Chapter 12. Circular Array Data Structure (3/3)
  53. Chapter 13. Dynamic Array and Dynamic Circular Array Data Structures (1/2)
  54. Chapter 13. Dynamic Array and Dynamic Circular Array Data Structures (2/2)
  55. Chapter 14. Tracked Array Data Structure (1/5)
  56. Chapter 14. Tracked Array Data Structure (2/5)
  57. Chapter 14. Tracked Array Data Structure (3/5)
  58. Chapter 14. Tracked Array Data Structure (4/5)
  59. Chapter 14. Tracked Array Data Structure (5/5)
  60. Chapter 15. Singly Linked List Data Structure (1/8)
  61. Chapter 15. Singly Linked List Data Structure (2/8)
  62. Chapter 15. Singly Linked List Data Structure (3/8)
  63. Chapter 15. Singly Linked List Data Structure (4/8)
  64. Chapter 15. Singly Linked List Data Structure (5/8)
  65. Chapter 15. Singly Linked List Data Structure (6/8)
  66. Chapter 15. Singly Linked List Data Structure (7/8)
  67. Chapter 15. Singly Linked List Data Structure (8/8)
  68. Chapter 16. Doubly Linked List Data Structure (1/2)
  69. Chapter 16. Doubly Linked List Data Structure (2/2)
  70. Chapter 17. Buffer ADT and Its Implementation (1/2)
  71. Chapter 17. Buffer ADT and Its Implementation (2/2)
  72. Chapter 18. Queue ADT and Implementation
  73. Chapter 19. Stack ADT and Implementation
  74. Chapter 20. Set ADT (1/3)
  75. Chapter 20. Set ADT (2/3)
  76. Chapter 20. Set ADT (3/3)
  77. Chapter 21. Direct Addressing Data Structure (1/3)
  78. Chapter 21. Direct Addressing Data Structure (2/3)
  79. Chapter 21. Direct Addressing Data Structure (3/3)
  80. Chapter 22. Open Addressing Data Structure (1/4)
  81. Chapter 22. Open Addressing Data Structure (2/4)
  82. Chapter 22. Open Addressing Data Structure (3/4)
  83. Chapter 22. Open Addressing Data Structure (4/4)
  84. Chapter 23. Separate Chaining Data Structure (1/5)
  85. Chapter 23. Separate Chaining Data Structure (2/5)
  86. Chapter 23. Separate Chaining Data Structure (3/5)
  87. Chapter 23. Separate Chaining Data Structure (4/5)
  88. Chapter 23. Separate Chaining Data Structure (5/5)
  89. Chapter 24. Priority Queue ADT (1/2)
  90. Chapter 24. Priority Queue ADT (2/2)
  91. Chapter 25. Binary Heap Data Structure (1/4)
  92. Chapter 25. Binary Heap Data Structure (2/4)
  93. Chapter 25. Binary Heap Data Structure (3/4)
  94. Chapter 25. Binary Heap Data Structure (4/4)
  95. Chapter 26. Leftist Heap Data Structure (1/6)
  96. Chapter 26. Leftist Heap Data Structure (2/6)
  97. Chapter 26. Leftist Heap Data Structure (3/6)
  98. Chapter 26. Leftist Heap Data Structure (4/6)
  99. Chapter 26. Leftist Heap Data Structure (5/6)
  100. Chapter 26. Leftist Heap Data Structure (6/6)
  101. Chapter 27. Pairing Heap Data Structure (1/5)
  102. Chapter 27. Pairing Heap Data Structure (2/5)
  103. Chapter 27. Pairing Heap Data Structure (3/5)
  104. Chapter 27. Pairing Heap Data Structure (4/5)
  105. Chapter 27. Pairing Heap Data Structure (5/5)
  106. Chapter 28. Fibonacci Heap Data Structure (1/4)
  107. Chapter 28. Fibonacci Heap Data Structure (2/4)
  108. Chapter 28. Fibonacci Heap Data Structure (3/4)
  109. Chapter 28. Fibonacci Heap Data Structure (4/4)
  110. Chapter 29. Ordered Collection ADT (1/3)
  111. Chapter 29. Ordered Collection ADT (2/3)
  112. Chapter 29. Ordered Collection ADT (3/3)
  113. Chapter 30. Sorted Array Data Structure (1/4)
  114. Chapter 30. Sorted Array Data Structure (2/4)
  115. Chapter 30. Sorted Array Data Structure (3/4)
  116. Chapter 30. Sorted Array Data Structure (4/4)
  117. Chapter 31. Abstract Search Tree Class (1/2)
  118. Chapter 31. Abstract Search Tree Class (2/2)
  119. Chapter 32. Binary Search Tree Data Structure (1/6)
  120. Chapter 32. Binary Search Tree Data Structure (2/6)
  121. Chapter 32. Binary Search Tree Data Structure (3/6)
  122. Chapter 32. Binary Search Tree Data Structure (4/6)
  123. Chapter 32. Binary Search Tree Data Structure (5/6)
  124. Chapter 32. Binary Search Tree Data Structure (6/6)
  125. Chapter 33. Balanced Binary Search Trees
  126. Chapter 34. Red-Black Tree Data Structure (1/4)
  127. Chapter 34. Red-Black Tree Data Structure (2/4)
  128. Chapter 34. Red-Black Tree Data Structure (3/4)
  129. Chapter 34. Red-Black Tree Data Structure (4/4)
  130. Chapter 35. Splay Tree Data Structure (1/3)
  131. Chapter 35. Splay Tree Data Structure (2/3)
  132. Chapter 35. Splay Tree Data Structure (3/3)
  133. Chapter 36. B-Tree Data Structure (1/6)
  134. Chapter 36. B-Tree Data Structure (2/6)
  135. Chapter 36. B-Tree Data Structure (3/6)
  136. Chapter 36. B-Tree Data Structure (4/6)
  137. Chapter 36. B-Tree Data Structure (5/6)
  138. Chapter 36. B-Tree Data Structure (6/6)
  139. Chapter 37. B+-Tree Data Structure (1/4)
  140. Chapter 37. B+-Tree Data Structure (2/4)
  141. Chapter 37. B+-Tree Data Structure (3/4)
  142. Chapter 37. B+-Tree Data Structure (4/4)
  143. Chapter 38. Skip List Data Structure (1/6)
  144. Chapter 38. Skip List Data Structure (2/6)
  145. Chapter 38. Skip List Data Structure (3/6)
  146. Chapter 38. Skip List Data Structure (4/6)
  147. Chapter 38. Skip List Data Structure (5/6)
  148. Chapter 38. Skip List Data Structure (6/6)
  149. Chapter 39. Digitized Ordered Collection ADT (1/4)
  150. Chapter 39. Digitized Ordered Collection ADT (2/4)
  151. Chapter 39. Digitized Ordered Collection ADT (3/4)
  152. Chapter 39. Digitized Ordered Collection ADT (4/4)
  153. Chapter 40. Trie Node Types
  154. Chapter 41. Trie Data Structure (1/7)
  155. Chapter 41. Trie Data Structure (2/7)
  156. Chapter 41. Trie Data Structure (3/7)
  157. Chapter 41. Trie Data Structure (4/7)
  158. Chapter 41. Trie Data Structure (5/7)
  159. Chapter 41. Trie Data Structure (6/7)
  160. Chapter 41. Trie Data Structure (7/7)
  161. Chapter 42. Compact Trie Data Structure (1/3)
  162. Chapter 42. Compact Trie Data Structure (2/3)
  163. Chapter 42. Compact Trie Data Structure (3/3)
  164. Chapter 43. Compressed Trie Data Structure (1/3)
  165. Chapter 43. Compressed Trie Data Structure (2/3)
  166. Chapter 43. Compressed Trie Data Structure (3/3)
  167. Chapter 44. Patricia Trie Data Structure (1/5)
  168. Chapter 44. Patricia Trie Data Structure (2/5)
  169. Chapter 44. Patricia Trie Data Structure (3/5)
  170. Chapter 44. Patricia Trie Data Structure (4/5)
  171. Chapter 44. Patricia Trie Data Structure (5/5)
  172. Chapter 45. Ternary Search Trie Data Structure (1/2)
  173. Chapter 45. Ternary Search Trie Data Structure (2/2)
  174. Chapter 46. Spatial Collection ADT (1/2)
  175. Chapter 46. Spatial Collection ADT (2/2)
  176. Chapter 47. KD-Tree Data Structure (1/5)
  177. Chapter 47. KD-Tree Data Structure (2/5)
  178. Chapter 47. KD-Tree Data Structure (3/5)
  179. Chapter 47. KD-Tree Data Structure (4/5)
  180. Chapter 47. KD-Tree Data Structure (5/5)
  181. Chapter 48. Quad Tree Data Structure (1/6)
  182. Chapter 48. Quad Tree Data Structure (2/6)
  183. Chapter 48. Quad Tree Data Structure (3/6)
  184. Chapter 48. Quad Tree Data Structure (4/6)
  185. Chapter 48. Quad Tree Data Structure (5/6)
  186. Chapter 48. Quad Tree Data Structure (6/6)
  187. Chapter 49. Tagged Collection ADTs (1/8)
  188. Chapter 49. Tagged Collection ADTs (2/8)
  189. Chapter 49. Tagged Collection ADTs (3/8)
  190. Chapter 49. Tagged Collection ADTs (4/8)
  191. Chapter 49. Tagged Collection ADTs (5/8)
  192. Chapter 49. Tagged Collection ADTs (6/8)
  193. Chapter 49. Tagged Collection ADTs (7/8)
  194. Chapter 49. Tagged Collection ADTs (8/8)
  195. Chapter 50. Tagged Bucket Collection ADTs (1/3)
  196. Chapter 50. Tagged Bucket Collection ADTs (2/3)
  197. Chapter 50. Tagged Bucket Collection ADTs (3/3)
  198. Part III. GRAPH DATA STRUCTURES AND ALGORITHMS
  199. Chapter 51. Part III Organization
  200. Chapter 52. Graph ADT (1/3)
  201. Chapter 52. Graph ADT (2/3)
  202. Chapter 52. Graph ADT (3/3)
  203. Chapter 53. Abstract Graph and Graph Algorithms (1/6)
  204. Chapter 53. Abstract Graph and Graph Algorithms (2/6)
  205. Chapter 53. Abstract Graph and Graph Algorithms (3/6)
  206. Chapter 53. Abstract Graph and Graph Algorithms (4/6)
  207. Chapter 53. Abstract Graph and Graph Algorithms (5/6)
  208. Chapter 53. Abstract Graph and Graph Algorithms (6/6)
  209. Chapter 54. Adjacency Matrix Data Structure (1/4)
  210. Chapter 54. Adjacency Matrix Data Structure (2/4)
  211. Chapter 54. Adjacency Matrix Data Structure (3/4)
  212. Chapter 54. Adjacency Matrix Data Structure (4/4)
  213. Chapter 55. Adjacency List Data Structure (1/4)
  214. Chapter 55. Adjacency List Data Structure (2/4)
  215. Chapter 55. Adjacency List Data Structure (3/4)
  216. Chapter 55. Adjacency List Data Structure (4/4)
  217. Chapter 56. Weighted Graph ADT (1/2)
  218. Chapter 56. Weighted Graph ADT (2/2)
  219. Chapter 57. Abstract Weighted Graph and Weighted Graph Algorithms (1/7)
  220. Chapter 57. Abstract Weighted Graph and Weighted Graph Algorithms (2/7)
  221. Chapter 57. Abstract Weighted Graph and Weighted Graph Algorithms (3/7)
  222. Chapter 57. Abstract Weighted Graph and Weighted Graph Algorithms (4/7)
  223. Chapter 57. Abstract Weighted Graph and Weighted Graph Algorithms (5/7)
  224. Chapter 57. Abstract Weighted Graph and Weighted Graph Algorithms (6/7)
  225. Chapter 57. Abstract Weighted Graph and Weighted Graph Algorithms (7/7)
  226. Part IV. APPENDICES
  227. Appendix A (1/4)
  228. Appendix A (2/4)
  229. Appendix A (3/4)
  230. Appendix A (4/4)
  231. Appendix B (1/3)
  232. Appendix B (2/3)
  233. Appendix B (3/3)
  234. Appendix C (1/3)
  235. Appendix C (2/3)
  236. Appendix C (3/3)
  237. Index (1/5)
  238. Index (2/5)
  239. Index (3/5)
  240. Index (4/5)
  241. Index (5/5)
  242. Back cover