Need help with a programming assignment? Get affordable programming homework help.
Data Structures and Algorithms
by Alfred V. Aho (Author), Jeffrey D. Ullman (Author), John E. Hopcroft (Author)
This book is quite old, the most recent edition is dated 1983, but the basics of algorithms and data structures haven't changed much since. The book combines compactness and strictness of explanation, and algorithms are supplied with proofs and implementations. The book is not the best choice for beginners, but we would definitely recommend it to anyone, who is confident in the knowledge of basics and would like to have compact and full textbook on data structures and algorithms. The only shortcoming of the book it that all implementations are done in Pascal. It may look like a pseudocode to those, who are not familiar with this programming language.

Table of Contents
Chapter 1  Design and Analysis of Algorithms  
1.1  From Problems to Programs  
1.2  Abstract Data Types  
1.3  Data Types, Data Structures, and Abstract Data Types  
1.4  The Running Time of a Program  
1.5  Calculating the Running Time of a Program  
1.6  Good Programming Practice  
1.7  Super Pascal  
Chapter 2  Basic Data Types  
2.1  The Data Type "List"  
2.2  Implementation of Lists  
2.3  Stacks  
2.4  Queues  
2.5  Mapping  
2.6  Stacks and Recursive Procedures  
Chapter 3  Trees  
3.1  Basic Terminology  
3.2  The ADT TREE  
3.3  Implementation of Trees  
Chapter 4  Basic Operations on Sets  
4.1  Introduction to Sets  
4.2  An ADT with Union, Intersection, and Difference  
4.3  A BitVector Implementation of Sets  
4.4  A LinkedList Implementation of Sets  
4.5  The Dictionary  
4.6  Simple Dictionary Implementations  
4.7  The Hash Table Data Structure  
4.8  Estimating the Efficiency of Hash Functions  
4.9  Implementation of the Mapping ADT  
4.10  Priority Queues  
4.11  Implementation of Priority Queues  
4.12  Some Complex Set Structures  
Chapter 5  Advanced Set Representation Methods  
5.1  Binary Search Trees  
5.2  Time Analysis of Binary Search Tree Operations  
5.3  Tries  
5.4  Balanced Tree Implementations of Sets  
5.5  Sets with the MERGE and FIND Operations  
5.6  An ADT with MERGE and SPLIT  
Chapter 6  Directed Graphs  
6.1  Basic Definitions  
6.2  Representation for Directed Graphs  
6.3  The SingleSource Shortest Paths Problem  
6.4  The AllPairs Shortest Path Problem  
6.5  Traversals of Directed Graphs  
6.6  Directed Acyclic Graphs  
6.7  Strong Components  
Chapter 7  Undirected Graphs  
7.1  Definitions  
7.2  MinimumCost Spanning Trees  
7.3  Traversals  
7.4  Articulation Points and Biconnected Components  
7.5  Graph Matching  
Chapter 8  Sorting  
8.1  The Internal Sorting Model  
8.2  Some Simple Sorting Schemes  
8.3  Quicksort  
8.4  Heapsort  
8.5  Bin Sorting  
8.6  A Lower Bound for Sorting by Comparisons  
8.7  Order Statistics  
Chapter 9  Algorithm Analysis Techniques  
9.1  Efficiency of Algorithms  
9.2  Analysis of Recursive Programs  
9.3  Solving Recurrence Equations  
9.4  A General Solution for a Large Class of Recurrences  
Chapter 10  Algorithm Design Techniques  
10.1  DivideandConquer Algorithms  
10.2  Dynamic Programming  
10.3  Greedy Algorithms  
10.4  Backtracking  
10.5  Local Search Algorithms  
Chapter 11  Data Structures and Algorithms for External Storage  
11.1  A Model for External Computation  
11.2  External Sorting  
11.3  Storing Information in Files  
11.4  External Search Trees  
Chapter 12  Memory Management  
12.1  The Issues in Memory Management  
12.2  Managing EqualSized Blocks  
12.3  Garbage Collection Algorithms for EqualSized Blocks  
12.4  Storage Allocation for Objects with Mixed Sizes  
12.5  Buddy Systems  
12.6  Storage Compaction 