Problem Solving in Data Structures & Algorithms Using C++: Programming Interview Guide
- Length: 456 pages
- Edition: First
- Language: English
- Publisher: CreateSpace Independent Publishing Platform
- Publication Date: 2017-01-08
- ISBN-10: 1542396476
- ISBN-13: 9781542396479
- Sales Rank: #1878704 (See Top 100 Books)
This book is about the usage of data structures and algorithms in computer programming. Designing an efficient algorithm to solve a computer science problem is a skill of Computer programmer. This is the skill which tech companies like Google, Amazon, Microsoft, Adobe and many others are looking for in an interview. This book assumes that you are a C++ language developer. You are not an expert in C++ language, but you are well familiar with concepts of references, functions, arrays and recursion. In the start of this book, we will be revising the C++ language fundamentals that will be used throughout this book. We will be looking into some of the problems in arrays and recursion too. Then in the coming chapter, we will be looking into complexity analysis. Then will look into the various data structures and their algorithms. We will be looking into a linked list, stack, queue, trees, heap, hash table and graphs. We will be looking into sorting, searching techniques. Then we will be looking into algorithm analysis, we will be looking into brute force algorithms, greedy algorithms, divide and conquer algorithms, dynamic programming, reduction, and backtracking. In the end, we will be looking into the system design that will give a systematic approach for solving the design problems in an Interview.
Table of Contents
CHAPTER 1: INTRODUCTION – PROGRAMMING OVERVIEW
CHAPTER 2: ALGORITHMS ANALYSIS
CHAPTER 3: APPROACH TO SOLVE ALGORITHM DESIGN PROBLEMS
CHAPTER 4: ABSTRACT DATA TYPE & C++ COLLECTIONS
CHAPTER 5: SEARCHING
CHAPTER 6: SORTING
CHAPTER 7: LINKED LIST
CHAPTER 8: STACK
CHAPTER 9: QUEUE
CHAPTER 10: TREE
CHAPTER 11: PRIORITY QUEUE
CHAPTER 12: HASH-TABLE
CHAPTER 13: GRAPHS
CHAPTER 14: STRING ALGORITHMS
CHAPTER 15: ALGORITHM DESIGN TECHNIQUES
CHAPTER 16: BRUTE FORCE ALGORITHM
CHAPTER 17: GREEDY ALGORITHM
CHAPTER 18: DIVIDE-AND-CONQUER, DECREASE-AND-CONQUER
CHAPTER 19: DYNAMIC PROGRAMMING
CHAPTER 20: BACKTRACKING AND BRANCH-AND-BOUND
CHAPTER 21: COMPLEXITY THEORY AND NP COMPLETENESS
CHAPTER 22: INTERVIEW STRATEGY
CHAPTER 23: SYSTEM DESIGN