Introduction to C++ Programming and Data Structures, 5th edition
Published by Pearson (January 28, 2022) © 2022
- Y Daniel Liang Georgia Southern University
eTextbook
- Easy-to-use search and navigation
- Add notes and highlights
- Flashcards help streamline study sessions
Revel
- Inspire engagement through active learning
- Provide an immersive reading experience
- Assess student progress with performance insights
For 1-, 2- or 3-semester introductory courses in computer science or a full course on data structures.
A fundamentals-first approach helps students create efficient, elegant code
Introduction to C++ Programming and Data Structures introduces programming concepts using a fundamentals-first approach. Concepts and techniques, including control statements, loops, and functions, are presented before object-oriented and data structure topics. A wide variety of problems with varying levels of difficulty cover interesting application areas to engage and motivate students.
The 2nd Edition has up-to-date content on recent trends like cloud storage and touchscreens. All code is compatible with C++17.
Hallmark features of this title
A fundamentals-first approach
- A problem-driven, fundamentals-first approach to programming focuses on problem solving rather than syntax. Students start at the beginning, learning important basic concepts and techniques before moving on to more advanced topics.
- The step-by-step presentation guides students in learning essential subjects incrementally. Topics flow naturally from fundamental programming techniques to object-oriented programming, and from simple data types to classic structures.
- A large variety of engaging examples and problems provide an interesting fun context for learning concepts. Examples drawn from math, science, business, finance, gaming, animation and multimedia bring concepts to life and make the material more relatable.
New and updated features of this title
Up-to-date content keeps pace with the C++ language and recent programming trends
- UPDATED: Code and discussions are compatible with the C++17. In C++17, exception specifiers are no longer supported. All code that uses exception specifiers is modified.
- UPDATED: Section 1.2 includes cloud storage and touchscreens.
- UPDATED: Section 4.8.4 discusses token-based input vs. line-based input.
- NEW: Section 18.11 presents three string matching algorithms: brute-force, Boyce-Moore, and KMP.
- NEW: Section 21.1 presents data compression using Hoffman encoding.
- NEW: Appendix I gives a precise mathematical definition for the Big-O notation as well as the Big-Omega and Big-Theta notations.
Features of Revel for the 2nd Edition
- VideoNotes are narrated step-by-step video tutorials that show how to solve problems completely, from design through coding.
- Animated Listings step students through the code line-by-line, showing what is happening in the program.
- Live Code Examples help students practice what they've learned in a live coding environment by modifying or making an addition to pre-populated code, enabling them to see the results.
- Algorithm Animations show how an algorithm works visually and interactively.
- Checkpoint self-assessments test students' new-found knowledge with multiple-choice and matching questions at the end of each section.
- Interactive flowcharts show students each step of an algorithm or process.
Part I: Fundamentals of Programming
1. Introduction to Computers, Programming, and C++
2. Elementary Programming
3. Selections
4. Mathematical Functions, Characters, and Strings
5. Loops
6. Functions
7. Single-Dimensional Arrays and C-Strings
8. Multidimensional Arrays
Part II: Object-Oriented Programming
9. Objects and Classes
10. Object-Oriented Thinking
11. Pointers and Dynamic Memory Management
12. Templates, Vectors, and Stacks
13. File Input and Output
14. Operator Overloading
15. Inheritance and Polymorphism
16. Exception Handling
Part III: Data Structures and Advanced Topics
17. Recursion
18. Developing Efficient Algorithms
19. Sorting
20. Linked Lists, Queues, and Priority Queues
21. Binary Search Trees
22. STL Containers
23. STL Algorithms
24. Hashing
25. AVL Trees
26. Graph Applications
27. Weighted Graph Applications
Appendices
Appendix A: C++ Keywords
Appendix B: The ASCII Character Set
Appendix C: Operator Precedence Chart
Appendix D: Number Systems
Appendix E: Bitwise Operations
Appendix F: Using Command-Line Arguments
Appendix G: Enumerated Types
Appendix H: Regular Expressions
Appendix I: The Big-O, Big-Omega, and Big-Theta Notations
About our author
Dr. Daniel Liang earned his Ph.D. in Computer Science from the University of Oklahoma in 1991 and his M.S. and B.S. in Computer Science from Fudan University in Shanghai, China in 1986 and 1983. Prior to joining Armstrong State University (now merged with Georgia Southern University), he was an Associate Professor in computer science at Purdue University in Fort Wayne, Indiana, where he twice received the Excellence in Research award.
Dr. Liang is currently a Professor of Computer Science at Georgia Southern University and has given lectures on programming internationally. He was trained in theoretical computer science. He has published in the SIAM Journal on Computing, Discrete Applied Mathematics, Acta Informatics and Information Processing Letters. He is the author of more than 30 books and his popular computer science texts are widely used throughout the world.
Need help? Get in touch