Data Structures and Algorithms in C++
Edition: 2 edition
Publisher: Course Technology
Published: June 30, 2000
Language: eng
Format: Hardcover
Number of pages: 672
ISBN-13: 9780534375973
Subjects: C & Visual C; Database Management - General; Computers; C (Programming Language); Data Structures; Programming Languages - C; Computers - Languages / Programming; Data structures (Computer science); Computer Books: Languages; Data structures (Computer scie; Computer Science; Programming - Algorithms; Programming Languages - C++; C++ (Computer program language); C++ (Computer program language; Computer algorithms
First sentence: Before a program is written, we should have a fairly good idea how to accomplish the task being implemented by this program.
Notes: Second Edition
Table of contents: label: 1
title: Object-Oriented Programming Using C++
pagenum: 1; label: 1.1
title: Abstract Data Types
pagenum: 1; label: 1.2
title: Encapsulation
pagenum: 2; label: 1.3
title: Inheritance
pagenum: 6; label: 1.4
title: Pointers
pagenum: 9; label: 1.4.1
title: Pointers and Arrays
pagenum: 12; label: 1.4.2
title: Pointers and Copy Constructors
pagenum: 14; label: 1.4.3
title: Pointers and Destructors
pagenum: 16; label: 1.4.4
title: Pointers and Reference Variables
pagenum: 17; label: 1.4.5
title: Pointers to Functions
pagenum: 19; label: 1.5
title: Polymorphism
pagenum: 20; label: 1.6
title: C++ and Object-Oriented Programming
pagenum: 22; label: 1.7
title: The Standard Template Library
pagenum: 23; label: 1.7.1
title: Containers
pagenum: 23; label: 1.7.2
title: Iterators
pagenum: 24; label: 1.7.3
title: Algorithms
pagenum: 25; label: 1.7.4
title: Function Objects
pagenum: 25; label: 1.8
title: Vectors in the Standard Template Library
pagenum: 27; label: 1.9
title: Data Structures and Object-Oriented Programming
pagenum: 35; label: 1.10
title: Case Study: Random Access File
pagenum: 35; label: 1.11
title: Exercises
pagenum: 48; label: 1.12
title: Programming Assignments
pagenum: 50; label: 2
title: Complexity Analysis
pagenum: 53; label: 2.1
title: Computational and Asymptotic Complexity
pagenum: 53; label: 2.2
title: Big-O Notation
pagenum: 54; label: 2.3
title: Properties of Big-O Notation
pagenum: 57; label: 2.4
title: Ω and Θ Notations
pagenum: 58; label: 2.5
title: Possible Problems
pagenum: 59; label: 2.6
title: Examples of Complexities
pagenum: 60; label: 2.7
title: Finding Asymptotic Complexity: Examples
pagenum: 61; label: 2.8
title: The Best, Average, and Worst Cases
pagenum: 63; label: 2.9
title: Amortized Complexity
pagenum: 66; label: 2.10
title: Exercises
pagenum: 71; label: 3
title: Linked Lists
pagenum: 75; label: 3.1
title: Singly Linked Lists
pagenum: 75; label: 3.1.1
title: Insertion
pagenum: 81; label: 3.1.2
title: Deletion
pagenum: 84; label: 3.1.3
title: Search
pagenum: 90; label: 3.2
title: Doubly Linked Lists
pagenum: 90; label: 3.3
title: Circular Lists
pagenum: 95; label: 3.4
title: Skip Lists
pagenum: 97; label: 3.5
title: Self-Organizing Lists
pagenum: 102; label: 3.6
title: Sparse Tables
pagenum: 106; label: 3.7
title: Lists in the Standard Template Library
pagenum: 110; label: 3.8
title: Deques in the Standard Template Library
pagenum: 114; label: 3.9
title: Concluding Remarks
pagenum: 119; label: 3.10
title: Case Study: A Library
pagenum: 120; label: 3.11
title: Exercises
pagenum: 123; label: 3.12
title: Programming Assignments
pagenum: 133; label: 4
title: Stacks and Queues
pagenum: 137; label: 4.1
title: Stacks
pagenum: 137; label: 4.2
title: Queues
pagenum: 145; label: 4.3
title: Priority Queues
pagenum: 154; label: 4.4
title: Stacks in the Standard Template Library
pagenum: 155; label: 4.5
title: Queues in the Standard Template Library
pagenum: 156; label: 4.6
title: Priority Queues in the Standard Template Library
pagenum: 156; label: 4.7
title: Case Study: Exiting a Maze
pagenum: 160; label: 4.8
title: Exercises
pagenum: 166; label: 4.9
title: Programming Assignments
pagenum: 169; label: 5
title: Recursion
pagenum: 171; label: 5.1
title: Recursive Definitions
pagenum: 171; label: 5.2
title: Function Calls and Recursion Implementation
pagenum: 174; label: 5.3
title: Anatomy of a Recursive Call
pagenum: 176; label: 5.4
title: Tail Recursion
pagenum: 179; label: 5.5
title: Nontail Recursion
pagenum: 181; label: 5.6
title: Indirect Recursion
pagenum: 186; label: 5.7
title: Nested Recursion
pagenum: 188; label: 5.8
title: Excessive Recursion
pagenum: 189; label: 5.9
title: Backtracking
pagenum: 192; label: 5.10
title: Concluding Remarks
pagenum: 200; label: 5.11
title: Case Study: A Recursive Descent Interpreter
pagenum: 201; label: 5.12
title: Exercises
pagenum: 209; label: 5.13
title: Programming Assignments
pagenum: 213; label: 6
title: Binary Trees
pagenum: 216; label: 6.1
title: Trees, Binary Trees, and Binary Search Trees
pagenum: 216; label: 6.2
title: Implementing Binary Trees
pagenum: 221; label: 6.3
title: Searching a Binary Search Tree
pagenum: 224; label: 6.4
title: Tree Traversal
pagenum: 226; label: 6.4.1
title: Breadth-First Traversal
pagenum: 227; label: 6.4.2
title: Depth-First Traversal
pagenum: 227; label: 6.4.3
title: Stackless Depth-First Traversal
pagenum: 234; label: 6.5
title: Insertion
pagenum: 242; label: 6.6
title: Deletion
pagenum: 245; label: 6.6.1
title: Deletion by Merging
pagenum: 246; label: 6.6.2
title: Deletion by Copying
pagenum: 249; label: 6.7
title: Balancing a Tree
pagenum: 252; label: 6.7.1
title: The DSW Algorithm
pagenum: 255; label: 6.7.2
title: AVL Trees
pagenum: 258; label: 6.8
title: Self-Adjusting Trees
pagenum: 264; label: 6.8.1
title: Self-Restructuring Trees
pagenum: 264; label: 6.8.2
title: Splaying
pagenum: 265; label: 6.9
title: Heaps
pagenum: 271; label: 6.9.1
title: Heaps as Priority Queues
pagenum: 272; label: 6.9.2
title: Organizing Arrays as Heaps
pagenum: 275; label: 6.10
title: Polish Notation and Expression Trees
pagenum: 279; label: 6.10.1
title: Operations on Expression Trees
pagenum: 281; label: 6.11
title: Case Study: Computing Word Frequencies
pagenum: 284; label: 6.12
title: Exercises
pagenum: 291; label: 6.13
title: Programming Assignments
pagenum: 295; label: 7
title: Multiway Trees
pagenum: 302; label: 7.1
title: The Family of B-Trees
pagenum: 303; label: 7.1.1
title: B-Trees
pagenum: 304; label: 7.1.2
title: B*-Trees
pagenum: 314; label: 7.1.3
title: B+-Trees
pagenum: 316; label: 7.1.4
title: Prefix B+-Trees
pagenum: 319; label: 7.1.5
title: Bit-Trees
pagenum: 320; label: 7.1.6
title: R-Trees
pagenum: 323; label: 7.1.7
title: 2-4 Trees
pagenum: 324; label: 7.1.8
title: Sets and Multisets in the Standard Template Library
pagenum: 332; label: 7.1.9
title: Maps and Multimaps in the Standard Template Library
pagenum: 339; label: 7.2
title: Tries
pagenum: 345; label: 7.3
title: Concluding Remarks
pagenum: 353; label: 7.4
title: Case Study: Spell Checker
pagenum: 354; label: 7.5
title: Exercises
pagenum: 364; label: 7.6
title: Programming Assignments
pagenum: 366; label: 8
title: Graphs
pagenum: 371; label: 8.1
title: Graph Representation
pagenum: 373; label: 8.2
title: Graph Traversals
pagenum: 373; label: 8.3
title: Shortest Paths
pagenum: 378; label: 8.3.1
title: All-to-All Shortest Path Problem
pagenum: 385; label: 8.4
title: Cycle Detection
pagenum: 388; label: 8.4.1
title: Union-Find Problem
pagenum: 388; label: 8.5
title: Spanning Trees
pagenum: 391; label: 8.5.1
title: Borůvka's Algorithm
pagenum: 392; label: 8.5.2
title: Kruskal's Algorithm
pagenum: 393; label: 8.5.3
title: Jarník-Prim's Algorithm
pagenum: 393; label: 8.5.4
title: Dijkstra's Method
pagenum: 396; label: 8.6
title: Connectivity
pagenum: 396; label: 8.6.1
title: Connectivity in Undirected Graphs
pagenum: 397; label: 8.6.2
title: Connectivity in Directed Graphs
pagenum: 400; label: 8.7
title: Topological Sort
pagenum: 402; label: 8.8
title: Networks
pagenum: 404; label: 8.8.1
title: Maximum Flows
pagenum: 404; label: 8.8.2
title: Maximum Flows of Minimum Cost
pagenum: 414; label: 8.9
title: Matching
pagenum: 417; label: 8.9.1
title: Assignment Problem
pagenum: 424; label: 8.9.2
title: Matching in Nonbipartite Graphs
pagenum: 426; label: 8.10
title: Eulerian and Hamiltonian Graphs
pagenum: 428; label: 8.10.1
title: Eulerian Graphs
pagenum: 428; label: 8.10.2
title: Hamiltonian Graphs
pagenum: 429; label: 8.11
title: Case Study: Distinct Representatives
pagenum: 432; label: 8.12
title: Exercises
pagenum: 444; label: 8.13
title: Programming Assignments
pagenum: 448; label: 9
title: Sorting
pagenum: 452; label: 9.1
title: Elementary Sorting Algorithms
pagenum: 453; label: 9.1.1
title: Insertion Sort
pagenum: 453; label: 9.1.2
title: Selection Sort
pagenum: 456; label: 9.1.3
title: Bubble Sort
pagenum: 458; label: 9.2
title: Decision Trees
pagenum: 460; label: 9.3
title: Efficient Sorting Algorithms
pagenum: 463; label: 9.3.1
title: Shell Sort
pagenum: 463; label: 9.3.2
title: Heap Sort
pagenum: 468; label: 9.3.3
title: Quicksort
pagenum: 471; label: 9.3.4
title: Mergesort
pagenum: 478; label: 9.3.5
title: Radix Sort
pagenum: 480; label: 9.4
title: Sorting in the Standard Template Library
pagenum: 488; label: 9.5
title: Concluding Remarks
pagenum: 489; label: 9.6
title: Case Study: Adding Polynomials
pagenum: 491; label: 9.7
title: Exercises
pagenum: 498; label: 9.8
title: Programming Assignments
pagenum: 500; label: 10
title: Hashing
pagenum: 504; label: 10.1
title: Hash Functions
pagenum: 505; label: 10.1.1
title: Division
pagenum: 505; label: 10.1.2
title: Folding
pagenum: 505; label: 10.1.3
title: Mid-Square Function
pagenum: 506; label: 10.1.4
title: Extraction
pagenum: 506; label: 10.1.5
title: Radix Transformation
pagenum: 507; label: 10.2
title: Collision Resolution
pagenum: 507; label: 10.2.1
title: Open Addressing
pagenum: 510; label: 10.2.2
title: Chaining
pagenum: 513; label: 10.2.3
title: Bucket Addressing
pagenum: 515; label: 10.3
title: Deletion
pagenum: 517; label: 10.4
title: Perfect Hash Functions
pagenum: 518; label: 10.4.1
title: Cichelli's Method
pagenum: 519; label: 10.4.2
title: The FHCD Algorithm
pagenum: 521; label: 10.5
title: Hash Functions for Extendible Files
pagenum: 524; label: 10.5.1
title: Extendible Hashing
pagenum: 524; label: 10.5.2
title: Linear Hashing
pagenum: 527; label: 10.6
title: Case Study: Hashing with Buckets
pagenum: 530; label: 10.7
title: Exercises
pagenum: 539; label: 10.8
title: Programming Assignments
pagenum: 540; label: 11
title: Data Compression
pagenum: 543; label: 11.1
title: Conditions for Data Compression
pagenum: 543; label: 11.2
title: Huffman Coding
pagenum: 545; label: 11.2.1
title: Adaptive Huffman Coding
pagenum: 555; label: 11.3
title: Shannon-Fano Code
pagenum: 559; label: 11.4
title: Run-Length Encoding
pagenum: 561; label: 11.5
title: Ziv-Lempel Code
pagenum: 562; label: 11.6
title: Case Study: Huffman Method with Run-Length Encoding
pagenum: 565; label: 11.7
title: Exercises
pagenum: 577; label: 11.8
title: Programming Assignments
pagenum: 578; label: 12
title: Memory Management
pagenum: 581; label: 12.1
title: The Sequential-Fit Methods
pagenum: 582; label: 12.2
title: The Nonsequential-Fit Methods
pagenum: 584; label: 12.2.1
title: Buddy Systems
pagenum: 585; label: 12.3
title: Garbage Collection
pagenum: 592; label: 12.3.1
title: Mark-and-Sweep
pagenum: 593; label: 12.3.2
title: Copying Methods
pagenum: 600; label: 12.3.3
title: Incremental Garbage Collection
pagenum: 602; label: 12.4
title: Concluding Remarks
pagenum: 610; label: 12.5
title: Case Study: An In-Place Garbage Collector
pagenum: 611; label: 12.6
title: Exercises
pagenum: 619; label: 12.7
title: Programming Assignments
pagenum: 621; title: Appendixes; label: A
title: Computing Big-O
pagenum: 627; label: A.1
title: Harmonic Series
pagenum: 627; label: A.2
title: Approximation of the Function lg(n!)
pagenum: 627; label: A.3
title: Big-O for Average Case of Quicksort
pagenum: 629; label: A.4
title: Average Path Length in a Random Binary Tree
pagenum: 631; label: B
title: Algorithms in the Standard Template Library
pagenum: 633; label: B.1
title: Standard Algorithms
pagenum: 633; title: Name Index
pagenum: 643; title: Subject Index
pagenum: 647