Book Image

C++ Data Structures and Algorithm Design Principles

By : John Carey, Anil Achary, Shreyans Doshi, Payas Rajan
Book Image

C++ Data Structures and Algorithm Design Principles

By: John Carey, Anil Achary, Shreyans Doshi, Payas Rajan

Overview of this book

C++ is a mature multi-paradigm programming language that enables you to write high-level code with a high degree of control over the hardware. Today, significant parts of software infrastructure, including databases, browsers, multimedia frameworks, and GUI toolkits, are written in C++. This book starts by introducing C++ data structures and how to store data using linked lists, arrays, stacks, and queues. In later chapters, the book explains the basic algorithm design paradigms, such as the greedy approach and the divide-and-conquer approach, which are used to solve a large variety of computational problems. Finally, you will learn the advanced technique of dynamic programming to develop optimized implementations of several algorithms discussed in the book. By the end of this book, you will have learned how to implement standard data structures and algorithms in efficient and scalable C++ 14 code.
Table of Contents (11 chapters)

Summary

Now that you have completed this chapter, you should have a fairly high appreciation for the value of dynamic programming. If you initially found this topic to be somewhat anxiety-provoking, you have hopefully come to realize that it is not as complicated as it may have first appeared. Viewing familiar problems through the dynamic programming lens, as we did in this chapter, can certainly help us understand the core ideas that are needed to arrive at a working DP solution. To that end, we encourage you to investigate other variants of the knapsack problem and attempt to implement them using the strategies provided.

And with that, your tour through the vast world of algorithms and data structures in C++ has reached its conclusion. Having arrived at the end of this book, you should have a markedly deepened understanding of how and when to use some of the most useful tools of our trade. Hopefully, you have developed a better sense of the practical applications of the structures and techniques...