- Page 1 and 2:
Data Structures and AlgorithmAnalys
- Page 3 and 4:
ivContents2.6.1 Direct Proof 372.6.
- Page 5 and 6:
viContents6.1 General Tree Definiti
- Page 7 and 8:
viiiContents10.5.2 B-Tree Analysis
- Page 9 and 10:
xContents15.7 Optimal Sorting 50115
- Page 12 and 13:
PrefaceWe study data structures so
- Page 14 and 15:
PrefacexvA sophomore-level class wh
- Page 16 and 17:
Prefacexviithe form ofcalls to meth
- Page 18:
PrefacexixFor the second edition, I
- Page 22 and 23:
1Data Structures and AlgorithmsHow
- Page 24 and 25:
Sec. 1.1 A Philosophy of Data Struc
- Page 26 and 27:
Sec. 1.1 A Philosophy of Data Struc
- Page 28 and 29:
Sec. 1.2 Abstract Data Types and Da
- Page 30 and 31:
Sec. 1.2 Abstract Data Types and Da
- Page 32 and 33:
Sec. 1.3 Design Patterns 13that tra
- Page 34 and 35:
Sec. 1.3 Design Patterns 15will cal
- Page 36 and 37:
Sec. 1.4 Problems, Algorithms, and
- Page 38 and 39:
Sec. 1.5 Further Reading 19vides po
- Page 40 and 41:
Sec. 1.6 Exercises 21than 10,000 of
- Page 42 and 43:
2Mathematical PreliminariesThis cha
- Page 44 and 45:
Sec. 2.1 Sets and Relations 25A seq
- Page 46 and 47:
Sec. 2.2 Miscellaneous Notation 27E
- Page 48 and 49:
Sec. 2.3 Logarithms 29Unfortunately
- Page 50 and 51:
Sec. 2.4 Summations and Recurrences
- Page 52 and 53:
Sec. 2.4 Summations and Recurrences
- Page 54 and 55:
Sec. 2.5 Recursion 35(a)(b)Figure 2
- Page 56 and 57:
Sec. 2.6 Mathematical Proof Techniq
- Page 58 and 59: Sec. 2.6 Mathematical Proof Techniq
- Page 60 and 61: Sec. 2.6 Mathematical Proof Techniq
- Page 62 and 63: Sec. 2.6 Mathematical Proof Techniq
- Page 64 and 65: Sec. 2.8 Further Reading 45one inch
- Page 66 and 67: Sec. 2.9 Exercises 47(c) For nonzer
- Page 68 and 69: Sec. 2.9 Exercises 492.16 Write a r
- Page 70 and 71: Sec. 2.9 Exercises 512.38 How many
- Page 72 and 73: 3Algorithm AnalysisHow long will it
- Page 74 and 75: Sec. 3.1 Introduction 55efficient.
- Page 76 and 77: Sec. 3.1 Introduction 57n! 2 n2n 25
- Page 78 and 79: Sec. 3.2 Best, Worst, and Average C
- Page 80 and 81: Sec. 3.3 A Faster Computer, or a Fa
- Page 82 and 83: Sec. 3.4 Asymptotic Analysis 633.4
- Page 84 and 85: Sec. 3.4 Asymptotic Analysis 65If s
- Page 86 and 87: Sec. 3.4 Asymptotic Analysis 67it i
- Page 88 and 89: Sec. 3.5 Calculating the Running Ti
- Page 90 and 91: Sec. 3.5 Calculating the Running Ti
- Page 92 and 93: Sec. 3.5 Calculating the Running Ti
- Page 94 and 95: Sec. 3.7 Common Misunderstandings 7
- Page 96 and 97: Sec. 3.8 Multiple Parameters 77the
- Page 98 and 99: Sec. 3.9 Space Bounds 79A data stru
- Page 100 and 101: Sec. 3.10 Speeding Up Your Programs
- Page 102 and 103: Sec. 3.11 Empirical Analysis 833.11
- Page 104 and 105: Sec. 3.13 Exercises 853.13 Exercise
- Page 106 and 107: Sec. 3.13 Exercises 87(f) sum = 0;f
- Page 110: PART IIFundamental Data Structures9
- Page 113 and 114: 94 Chap. 4 Lists, Stacks, and Queue
- Page 115 and 116: 96 Chap. 4 Lists, Stacks, and Queue
- Page 117 and 118: 98 Chap. 4 Lists, Stacks, and Queue
- Page 119 and 120: 100 Chap. 4 Lists, Stacks, and Queu
- Page 121 and 122: 102 Chap. 4 Lists, Stacks, and Queu
- Page 123 and 124: 104 Chap. 4 Lists, Stacks, and Queu
- Page 125 and 126: 106 Chap. 4 Lists, Stacks, and Queu
- Page 127 and 128: 108 Chap. 4 Lists, Stacks, and Queu
- Page 129 and 130: 110 Chap. 4 Lists, Stacks, and Queu
- Page 131 and 132: 112 Chap. 4 Lists, Stacks, and Queu
- Page 133 and 134: 114 Chap. 4 Lists, Stacks, and Queu
- Page 135 and 136: 116 Chap. 4 Lists, Stacks, and Queu
- Page 137 and 138: 118 Chap. 4 Lists, Stacks, and Queu
- Page 139 and 140: 120 Chap. 4 Lists, Stacks, and Queu
- Page 141 and 142: 122 Chap. 4 Lists, Stacks, and Queu
- Page 143 and 144: 124 Chap. 4 Lists, Stacks, and Queu
- Page 145 and 146: 126 Chap. 4 Lists, Stacks, and Queu
- Page 147 and 148: 128 Chap. 4 Lists, Stacks, and Queu
- Page 149 and 150: 130 Chap. 4 Lists, Stacks, and Queu
- Page 151 and 152: 132 Chap. 4 Lists, Stacks, and Queu
- Page 153 and 154: 134 Chap. 4 Lists, Stacks, and Queu
- Page 155 and 156: 136 Chap. 4 Lists, Stacks, and Queu
- Page 157 and 158: 138 Chap. 4 Lists, Stacks, and Queu
- Page 159 and 160:
140 Chap. 4 Lists, Stacks, and Queu
- Page 161 and 162:
142 Chap. 4 Lists, Stacks, and Queu
- Page 164 and 165:
5Binary TreesThe list representatio
- Page 166 and 167:
Sec. 5.1 Definitions and Properties
- Page 168 and 169:
Sec. 5.2 Binary Tree Traversals 149
- Page 170 and 171:
Sec. 5.2 Binary Tree Traversals 151
- Page 172 and 173:
Sec. 5.2 Binary Tree Traversals 153
- Page 174 and 175:
Sec. 5.3 Binary Tree Node Implement
- Page 176 and 177:
Sec. 5.3 Binary Tree Node Implement
- Page 178 and 179:
Sec. 5.3 Binary Tree Node Implement
- Page 180 and 181:
Sec. 5.3 Binary Tree Node Implement
- Page 182 and 183:
Sec. 5.4 Binary Search Trees 163•
- Page 184 and 185:
Sec. 5.4 Binary Search Trees 165/**
- Page 186 and 187:
Sec. 5.4 Binary Search Trees 167The
- Page 188 and 189:
Sec. 5.4 Binary Search Trees 16937
- Page 190 and 191:
Sec. 5.5 Heaps and Priority Queues
- Page 192 and 193:
Sec. 5.5 Heaps and Priority Queues
- Page 194 and 195:
Sec. 5.5 Heaps and Priority Queues
- Page 196 and 197:
Sec. 5.5 Heaps and Priority Queues
- Page 198 and 199:
Sec. 5.6 Huffman Coding Trees 179Le
- Page 200 and 201:
Sec. 5.6 Huffman Coding Trees 18130
- Page 202 and 203:
Sec. 5.6 Huffman Coding Trees 183/*
- Page 204 and 205:
Sec. 5.6 Huffman Coding Trees 185Le
- Page 206 and 207:
Sec. 5.6 Huffman Coding Trees 187de
- Page 208 and 209:
Sec. 5.8 Exercises 189techniques, s
- Page 210 and 211:
Sec. 5.8 Exercises 1915.23 What are
- Page 212 and 213:
Sec. 5.9 Projects 193trees is that
- Page 214 and 215:
6Non-Binary TreesMany organizations
- Page 216 and 217:
Sec. 6.1 General Tree Definitions a
- Page 218 and 219:
Sec. 6.2 The Parent Pointer Impleme
- Page 220 and 221:
Sec. 6.2 The Parent Pointer Impleme
- Page 222 and 223:
Sec. 6.2 The Parent Pointer Impleme
- Page 224 and 225:
Sec. 6.2 The Parent Pointer Impleme
- Page 226 and 227:
Sec. 6.3 General Tree Implementatio
- Page 228 and 229:
Sec. 6.3 General Tree Implementatio
- Page 230 and 231:
Sec. 6.4 K-ary Trees 211root(a)(b)F
- Page 232 and 233:
Sec. 6.5 Sequential Tree Implementa
- Page 234 and 235:
Sec. 6.6 Further Reading 215will us
- Page 236 and 237:
Sec. 6.7 Exercises 217path the new
- Page 238 and 239:
Sec. 6.8 Projects 219Figure 6.13. H
- Page 240:
PART IIISorting and Searching221
- Page 243 and 244:
224 Chap. 7 Internal Sortingspecial
- Page 245 and 246:
226 Chap. 7 Internal Sorting4220171
- Page 247 and 248:
228 Chap. 7 Internal Sorting4220171
- Page 249 and 250:
230 Chap. 7 Internal SortingKey = 4
- Page 251 and 252:
232 Chap. 7 Internal Sorting59 20 1
- Page 253 and 254:
234 Chap. 7 Internal Sorting36 20 1
- Page 255 and 256:
236 Chap. 7 Internal Sortingstatic
- Page 257 and 258:
238 Chap. 7 Internal Sortingstatic
- Page 259 and 260:
240 Chap. 7 Internal Sorting72 6 57
- Page 261 and 262:
242 Chap. 7 Internal Sortingan aver
- Page 263 and 264:
244 Chap. 7 Internal Sortingof size
- Page 265 and 266:
246 Chap. 7 Internal Sortingstatic
- Page 267 and 268:
248 Chap. 7 Internal Sortingstatic
- Page 269 and 270:
250 Chap. 7 Internal SortingInitial
- Page 271 and 272:
252 Chap. 7 Internal SortingSort 10
- Page 273 and 274:
254 Chap. 7 Internal SortingOr can
- Page 275 and 276:
256 Chap. 7 Internal Sortingstores
- Page 277 and 278:
258 Chap. 7 Internal Sorting7.2 Wri
- Page 279 and 280:
260 Chap. 7 Internal Sorting7.14 Im
- Page 281 and 282:
262 Chap. 7 Internal SortingModify
- Page 284 and 285:
8File Processing and ExternalSortin
- Page 286 and 287:
Sec. 8.1 Primary versus Secondary S
- Page 288 and 289:
Sec. 8.2 Disk Drives 269Boom(arm)Pl
- Page 290 and 291:
Sec. 8.2 Disk Drives 271allocation
- Page 292 and 293:
Sec. 8.2 Disk Drives 273platter con
- Page 294 and 295:
Sec. 8.3 Buffers and Buffer Pools 2
- Page 296 and 297:
Sec. 8.3 Buffers and Buffer Pools 2
- Page 298 and 299:
Sec. 8.3 Buffers and Buffer Pools 2
- Page 300 and 301:
Sec. 8.3 Buffers and Buffer Pools 2
- Page 302 and 303:
Sec. 8.5 External Sorting 283• re
- Page 304 and 305:
Sec. 8.5 External Sorting 285The mo
- Page 306 and 307:
Sec. 8.5 External Sorting 287approp
- Page 308 and 309:
Sec. 8.5 External Sorting 289InputF
- Page 310 and 311:
Sec. 8.5 External Sorting 291Input
- Page 312 and 313:
Sec. 8.5 External Sorting 293Input
- Page 314 and 315:
Sec. 8.6 Further Reading 295• Use
- Page 316 and 317:
Sec. 8.7 Exercises 2978.9 Using the
- Page 318 and 319:
Sec. 8.8 Projects 299an external so
- Page 320 and 321:
9SearchingOrganizing and retrieving
- Page 322 and 323:
Sec. 9.1 Searching Unsorted and Sor
- Page 324 and 325:
Sec. 9.1 Searching Unsorted and Sor
- Page 326 and 327:
Sec. 9.2 Self-Organizing Lists 307I
- Page 328 and 329:
Sec. 9.2 Self-Organizing Lists 309E
- Page 330 and 331:
Sec. 9.2 Self-Organizing Lists 311b
- Page 332 and 333:
Sec. 9.3 Bit Vectors for Representi
- Page 334 and 335:
Sec. 9.4 Hashing 315with key k can
- Page 336 and 337:
Sec. 9.4 Hashing 317Note that in ex
- Page 338 and 339:
Sec. 9.4 Hashing 319a hash table of
- Page 340 and 341:
Sec. 9.4 Hashing 321Records within
- Page 342 and 343:
Sec. 9.4 Hashing 3230123456789HashT
- Page 344 and 345:
Sec. 9.4 Hashing 325/** Search in h
- Page 346 and 347:
Sec. 9.4 Hashing 327One quality of
- Page 348 and 349:
Sec. 9.4 Hashing 329is p(K, i) = (i
- Page 350 and 351:
Sec. 9.4 Hashing 3319.4.4 Analysis
- Page 352 and 353:
Sec. 9.4 Hashing 33354InsertDelete3
- Page 354 and 355:
Sec. 9.5 Further Reading 335inserti
- Page 356 and 357:
Sec. 9.6 Exercises 3379.9 Write an
- Page 358:
Sec. 9.7 Projects 3399.2 Implement
- Page 361 and 362:
342 Chap. 10 Indexingcould be sorte
- Page 363 and 364:
344 Chap. 10 Indexing1 2003 5894 10
- Page 365 and 366:
346 Chap. 10 IndexingSecondaryKey I
- Page 367 and 368:
348 Chap. 10 Indexingamong the cyli
- Page 369 and 370:
350 Chap. 10 Indexing18331223 30 48
- Page 371 and 372:
352 Chap. 10 Indexingprivate E find
- Page 373 and 374:
354 Chap. 10 Indexing18332320233020
- Page 375 and 376:
356 Chap. 10 Indexing/** Add a new
- Page 377 and 378:
358 Chap. 10 IndexingNote that this
- Page 379 and 380:
360 Chap. 10 Indexingprivate E find
- Page 381 and 382:
362 Chap. 10 Indexing3318 23 481012
- Page 383 and 384:
364 Chap. 10 Indexingneighboring si
- Page 385 and 386:
366 Chap. 10 Indexingnumber of reco
- Page 387 and 388:
368 Chap. 10 Indexing10.2 Implement
- Page 390 and 391:
11GraphsGraphs provide the ultimate
- Page 392 and 393:
Sec. 11.1 Terminology and Represent
- Page 394 and 395:
Sec. 11.1 Terminology and Represent
- Page 396 and 397:
Sec. 11.2 Graph Implementations 377
- Page 398 and 399:
Sec. 11.2 Graph Implementations 379
- Page 400 and 401:
Sec. 11.3 Graph Traversals 381/** A
- Page 402 and 403:
Sec. 11.3 Graph Traversals 383works
- Page 404 and 405:
Sec. 11.3 Graph Traversals 385ACall
- Page 406 and 407:
Sec. 11.3 Graph Traversals 387AInit
- Page 408 and 409:
Sec. 11.4 Shortest-Paths Problems 3
- Page 410 and 411:
Sec. 11.4 Shortest-Paths Problems 3
- Page 412 and 413:
Sec. 11.5 Minimum-Cost Spanning Tre
- Page 414 and 415:
Sec. 11.5 Minimum-Cost Spanning Tre
- Page 416 and 417:
Sec. 11.5 Minimum-Cost Spanning Tre
- Page 418 and 419:
Sec. 11.6 Further Reading 399/** He
- Page 420 and 421:
Sec. 11.7 Exercises 4012 5110320410
- Page 422:
Sec. 11.8 Projects 403component’s
- Page 425 and 426:
406 Chap. 12 Lists and Arrays Revis
- Page 427 and 428:
408 Chap. 12 Lists and Arrays Revis
- Page 429 and 430:
410 Chap. 12 Lists and Arrays Revis
- Page 431 and 432:
412 Chap. 12 Lists and Arrays Revis
- Page 433 and 434:
414 Chap. 12 Lists and Arrays Revis
- Page 435 and 436:
416 Chap. 12 Lists and Arrays Revis
- Page 437 and 438:
418 Chap. 12 Lists and Arrays Revis
- Page 439 and 440:
420 Chap. 12 Lists and Arrays Revis
- Page 441 and 442:
422 Chap. 12 Lists and Arrays Revis
- Page 443 and 444:
424 Chap. 12 Lists and Arrays Revis
- Page 445 and 446:
426 Chap. 12 Lists and Arrays Revis
- Page 447 and 448:
428 Chap. 12 Lists and Arrays Revis
- Page 449 and 450:
430 Chap. 13 Advanced Tree Structur
- Page 451 and 452:
432 Chap. 13 Advanced Tree Structur
- Page 453 and 454:
434 Chap. 13 Advanced Tree Structur
- Page 455 and 456:
436 Chap. 13 Advanced Tree Structur
- Page 457 and 458:
438 Chap. 13 Advanced Tree Structur
- Page 459 and 460:
440 Chap. 13 Advanced Tree Structur
- Page 461 and 462:
442 Chap. 13 Advanced Tree Structur
- Page 463 and 464:
444 Chap. 13 Advanced Tree Structur
- Page 465 and 466:
446 Chap. 13 Advanced Tree Structur
- Page 467 and 468:
448 Chap. 13 Advanced Tree Structur
- Page 469 and 470:
450 Chap. 13 Advanced Tree Structur
- Page 471 and 472:
452 Chap. 13 Advanced Tree Structur
- Page 473 and 474:
454 Chap. 13 Advanced Tree Structur
- Page 475 and 476:
456 Chap. 13 Advanced Tree Structur
- Page 478:
PART VTheory of Algorithms459
- Page 481 and 482:
462 Chap. 14 Analysis Techniques14.
- Page 483 and 484:
464 Chap. 14 Analysis TechniquesDiv
- Page 485 and 486:
466 Chap. 14 Analysis TechniquesExa
- Page 487 and 488:
468 Chap. 14 Analysis TechniquesT(2
- Page 489 and 490:
470 Chap. 14 Analysis TechniquesIf
- Page 491 and 492:
472 Chap. 14 Analysis Techniquesf(n
- Page 493 and 494:
474 Chap. 14 Analysis TechniquesThe
- Page 495 and 496:
476 Chap. 14 Analysis Techniques14.
- Page 497 and 498:
478 Chap. 14 Analysis Techniquespar
- Page 499 and 500:
480 Chap. 14 Analysis Techniques14.
- Page 501 and 502:
482 Chap. 14 Analysis Techniques(b)
- Page 504 and 505:
15Lower BoundsHow do I know if I ha
- Page 506 and 507:
Sec. 15.1 Introduction to Lower Bou
- Page 508 and 509:
Sec. 15.2 Lower Bounds on Searching
- Page 510 and 511:
Sec. 15.3 Finding the Maximum Value
- Page 512 and 513:
Sec. 15.4 Adversarial Lower Bounds
- Page 514 and 515:
Sec. 15.4 Adversarial Lower Bounds
- Page 516 and 517:
Sec. 15.5 State Space Lower Bounds
- Page 518 and 519:
Sec. 15.6 Finding the ith Best Elem
- Page 520 and 521:
Sec. 15.7 Optimal Sorting 501While
- Page 522 and 523:
Sec. 15.7 Optimal Sorting 503ABAorA
- Page 524 and 525:
Sec. 15.9 Exercises 505things by as
- Page 526:
Sec. 15.10 Projects 50715.10 Projec
- Page 529 and 530:
510 Chap. 16 Patterns of Algorithms
- Page 531 and 532:
512 Chap. 16 Patterns of Algorithms
- Page 533 and 534:
514 Chap. 16 Patterns of Algorithms
- Page 535 and 536:
516 Chap. 16 Patterns of Algorithms
- Page 537 and 538:
518 Chap. 16 Patterns of Algorithms
- Page 539 and 540:
520 Chap. 16 Patterns of Algorithms
- Page 541 and 542:
522 Chap. 16 Patterns of Algorithms
- Page 543 and 544:
524 Chap. 16 Patterns of Algorithms
- Page 545 and 546:
526 Chap. 16 Patterns of Algorithms
- Page 547 and 548:
528 Chap. 16 Patterns of Algorithms
- Page 549 and 550:
530 Chap. 16 Patterns of Algorithms
- Page 551 and 552:
532 Chap. 16 Patterns of Algorithms
- Page 554 and 555:
17Limits to ComputationThis book de
- Page 556 and 557:
Sec. 17.1 Reductions 53723421793881
- Page 558 and 559:
Sec. 17.1 Reductions 539Problem A:I
- Page 560 and 561:
Sec. 17.2 Hard Problems 541Our next
- Page 562 and 563:
Sec. 17.2 Hard Problems 543exponent
- Page 564 and 565:
Sec. 17.2 Hard Problems 545so this
- Page 566 and 567:
Sec. 17.2 Hard Problems 547for TRAV
- Page 568 and 569:
Sec. 17.2 Hard Problems 549strategy
- Page 570 and 571:
Sec. 17.2 Hard Problems 551x 1x 1x
- Page 572 and 573:
Sec. 17.2 Hard Problems 553organize
- Page 574 and 575:
Sec. 17.3 Impossible Problems 555al
- Page 576 and 577:
Sec. 17.3 Impossible Problems 557ar
- Page 578 and 579:
Sec. 17.3 Impossible Problems 55917
- Page 580 and 581:
Sec. 17.4 Further Reading 561a func
- Page 582 and 583:
Sec. 17.5 Exercises 56317.8 A Hamil
- Page 584:
Sec. 17.6 Projects 565by using a br
- Page 587 and 588:
568 BIBLIOGRAPHY[BM85] John Louis B
- Page 589 and 590:
570 BIBLIOGRAPHY[LLKS85] E.L. Lawle
- Page 591 and 592:
572 BIBLIOGRAPHY[WMB99][Zei07]I.H.
- Page 593 and 594:
574 INDEXparent pointer, 154space r
- Page 595 and 596:
576 INDEXfree tree, 373, 393, 399fr
- Page 597 and 598:
578 INDEXnode, 100-103, 113, 114not
- Page 599 and 600:
580 INDEXRadix Sort, 247-252, 254,
- Page 601:
582 INDEXtype, 8uncountability, 556