Secure Data Structures and Algorithms with C++: Walls and Mirrors

Contents at a Glance

The Foundation

Chapter 1 Data Abstraction: The Walls

C++ Interlude 1 C++ Classes

Chapter 2 Bags

Chapter 3 Array-Based Implementations

C++ Interlude 2 Memory Allocation, Pointers, and Polymorphism

Chapter 4 Link-Based Implementations

Chapter 5 Recursion: The Mirrors

Chapter 6 Recursion as a Problem-Solving Technique

Chapter 7 Algorithm Efficiency

ADTs and Algorithms for Position-Oriented Access

Chapter 8 Stacks

C++ Interlude 3 Exceptions

Chapter 9 Stack Implementations

Chapter 10 Queues and Deques

C++ Interlude 4 Safe Memory Management Using Smart Pointers

Chapter 11 Queue and Deque Implementations

Chapter 12 Lists

Chapter 13 List Implementations

ADTs and Algorithms for Value-Oriented Access

Chapter 14 Basic Sorting Algorithms and Their Efficiency

Chapter 15 Advanced Sorting Algorithms

C++ Interlude 5 Class Relationships and Reuse

Chapter 16 Sorted Lists and Their Implementations

Chapter 17 Trees

C++ Interlude 6 Overloaded Operators and Friend Access

Chapter 18 Tree Implementations

Chapter 19 Binary Search Trees

Chapter 20 Implementing a Binary Search Tree

Chapter 21 Priority Queues and Heaps

Chapter 22 Heap and Priority Queue Implementations

Advanced ADTs and Algorithms

C++ Interlude 7 Iterators

Chapter 23 Maps and Their Implementations

Chapter 24 Hashing as a Map Implementation

Chapter 25 2-3 Trees

Chapter 26 Advanced Search Trees

Chapter 27 Graphs

Chapter 28 Applications of Graphs

Chapter 29 Processing Data in External Storage

C++ Interlude 8 The C++ Standard Library

Appendices

Appendix A Review of C++ Fundamentals

Appendix B C++ File Fundamentals

Appendix C C++ Documentation Systems

Appendix D ASCII Character Codes

Appendix E Important Themes in Secure Programming

Appendix F The Unified Modeling Language

Appendix G Mathematical Induction

Appendix H Algorithm Verification

Appendix I C++ for Java Programmers

Appendix J C++ for Python Programmers

Index

Online Supplements

Glossary

Answers to Checkpoint Questions