## Table of Contents

**CHAPTER 1 Introduction to Computers and Programming 1**

**CHAPTER 2 Introduction to C++ 27**

**CHAPTER 3 Expressions and Interactivity 85**

**CHAPTER 4 Making Decisions 149**

**CHAPTER 5 Loops and Files 227**

**CHAPTER 6 Functions 301**

**CHAPTER 7 Arrays 377**

**CHAPTER 8 Searching and Sorting Arrays 451**

**CHAPTER 9 Pointers 491**

**CHAPTER 10 Characters, C-Strings, and More About the String Class 541**

**CHAPTER 11 Structured Data 593**

**CHAPTER 12 Advanced File Operations 651**

**CHAPTER 13 Introduction to Classes 705**

**CHAPTER 14 More About Classes 799**

**CHAPTER 15 Inheritance, Polymorphism, and Virtual Functions 869**

**CHAPTER 16 Exceptions, Templates, and the Standard Template Library (STL) 947**

**CHAPTER 17 Linked Lists 1003**

**CHAPTER 18 Stacks and Queues 1043**

**CHAPTER 19 Recursion 1101**

**CHAPTER 20 Binary Trees 1137**

**Appendix A: Getting Started with Alice 1167**

**Appendix B: The ASCII Character Set 1195**

**Appendix C: Operator Precedence and Associativity 1197**

**Quick References 1199**

**Index 1201**

Online

The following appendices are available at www.pearsonhighered.com/gaddis

Appendix D: Introduction to Flowcharting

Appendix E: Using UML in Class Design

Appendix F: Namespaces

Appendix G: Writing Managed C++ Code for the .NET Framework

Appendix H: Passing Command Line Arguments

Appendix I: Header File and Library Function Reference

Appendix J: Binary Numbers and Bitwise Operations

Appendix K: Multi-Source File Programs

Appendix L: Stream Member Functions for Formatting

Appendix M: Introduction to Microsoft Visual C++ 2010 Express Edition

Appendix N: Answers to Checkpoints

Appendix O: Solutions to Odd-Numbered Review Questions