I found that Fundamentals of data structures (1982) by Ellis Horowitz and Sartaj Sahni draws my attention naturally, probably because of their formal treatment of data structures, and their choice of topics and their way of organizing the topics into chapters and sections. But the book was published in early 1980's. I wonder if the topics and the treatment in the book are outdated? It doesn't seem to have later editions, but only some derivations for specific programming languages.p.s.: What would you recommend? Thanks.A view of its table of content:Preface CONTENTS CHAPTER 1 INTRODUCTION 1.1 Overview 1.2 SPARKS 1.3 How to Create Programs 1.4 How to Analyze Programs References and Selected Readings Exercises CHAPTER 2 ARRAYS 2.1 Axiomatization 2.2 Ordered Lists 2.3 Sparse Matrices 2.4 Representation of Arrays Exercises CHAPTER 3 STACKS AND QUEUES 3.1 Fundamentals 3.2 A Mazing Problem 3.3 Evaluation of Expressions 3.4 Multiple Stacks and Queues Exercises CHAPTER 4 LINKED LISTS 4.1 Singly Linked Lists 4.2 Linked Stacks and Queues 4.3 The Storage Pool 4.4 Polynomial Addition 4.5 More on Linked Lists 4.6 Equivalence Relations 4.7 Sparse Matrices 4.8 Doubly Linked Lists and Dynamic Storage Management 4.9 Generalized Lists 4.10 Garbage Collection and Compaction 4.11 STRINGS - Case Study 4.11.1 Data Representations for STRINGS 4.11.2 Pattern Matching in STRINGS 4.12 Implementing Node Structures References and Selected Readings Exercises CHAPTER 5 TREES 5.1 Basic Terminology 5.2 Binary Trees 5.3 Binary Tree Representations 5.4 Binary Tree Traversal 5.5 More on Binary Trees 5.6 Threaded Binary Trees 5.7 Binary Tree Representation of Trees 5.8 Applications of Trees 5.8.1 Set Representation 5.8.2 Decision Trees 5.8.3 Game Trees 5.9 Counting Binary Trees References and Selected Readings Exercises CHAPTER 6 GRAPHS 6.1 Terminology and Representations 6.1.1 Introduction 6.1.2 Definitions and Terminology 6.1.3 Graph Representations 6.2 Traversals, Connected Components and Spanning Trees . . . 6.3 Shortest Paths and Transitive Closure 6.4 Activity Networks, Topological Sort and Critical Paths . ... 6.5 Enumerating All Paths References and Selected Readings Exercises CHAPTER 7 INTERNAL SORTING 7.1 Searching 7.2 Insertion Sort 7.3 Quicksort 7.4 How Fast Can We Sort? 7.5 2-Way Merge Sort 7.6 Heap Sort 7.7 Sorting on Several Keys 7.8 Practical Considerations for Internal Sorting References and Selected Readings Exercises CHAPTER 8 EXTERNAL SORTING 8.1 Storage Devices 8.1.1 Magnetic Tapes 8.1.2 Disk Storage 8.2 Sorting With Disks 8.2.1 K-Way Merging 8.2.2 Buffer Handling for Parallel Operation 8.2.3 Run Generation 8.3 Sorting with Tapes 8.3.1 Balanced Merge Sorts 8.3.2 Polyphase Merge 8.3.3 Sorting with Fewer Than 3 Tapes References and Selected Readings Exercises CHAPTER 9 SYMBOL TABLES 9.1 Static Tree Tables 9.2 Dynamic Tree Tables 9.3 Hash Tables 9.3.1 Hashing Functions 9.3.2 Overflow Handling 9.3.3 Theoretical Evaluation of Overflow Techniques References and Selected Readings Exercises CHAPTER 10 FILES 10.1 Files, Queries and Sequential Organizations 10.2 Index Techniques 10.2.1 Cylinder-Surface Indexing 10.2.2 Hashed Indexes 10.2.3 Tree Indexing -Trees 10.2.4 Trie Indexing 10.3 File Organizations 10.3.1 Sequential Organizations 10.3.2 Random Organizations 10.3.3 Linked Organization 10.3.4 Inverted Files 10.3.5 Cellular Partitions 10.4 Storage Management References and Selected Readings Exercises APPENDIX A: SPARKS APPENDIX B: ETHICAL CODE IN INFORMATION PROCESSING APPENDIX C: ALGORITHM INDEX BY CHAPTER . INDEX 562 
Is Horowitz and Sahni's data structure book outdated?
data structures;books