Awesome Open Source
Awesome Open Source

GitHub issues GitHub forks GitHub stars PRs Welcome

C++ Data Structures and Algorithm Design Principles

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 course starts by introducing C++ data structures and how to store data using linked lists, arrays, stacks, and queues. In later chapters, the course 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 course.

By the end of this course, you will have learned how to implement standard data structures and algorithms in efficient and scalable C++ 14 code.

What you will learn

  • Build applications using hash tables, dictionaries, and sets.
  • Implement a URL shortening service using a bloom filter.
  • Implement common algorithms, such as heap sort and merge sort in string data types.
  • Use C++ template metaprogramming to write code libraries.
  • Explore how modern hardware affects the actual run-time performance of programs.
  • Use appropriate modern C++ idioms like std:: array instead of C-style arrays.

The examples of this title have been tested on the Windows, Linux and MacOS operating systems.

Software Requirements

You'll also need the following software installed in advance:

  • Operating system: Windows 7 SP1 32/64-bit, Windows 8.1 32/64-bit, or Windows 10 32/64-bit, Ubuntu 14.04 or later, or macOS Sierra or later
  • Browser: Google Chrome or Mozilla Firefox
  • Any modern compiler and IDE (optional) that supports the C++ 14 standard.
  • Boost C++ Libraries
  • CMake

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
C Plus Plus (370,733
Algorithms (10,991
Graph (3,937
List (1,996
Queue (1,748
Tree (1,632
Stack (1,387
Sort (755
Dynamic Programming (711
Heap (418
Hashtable (282
Greedy Algorithms (252
Bloom Filter (241
Divide And Conquer (101
Traversal (98
Knapsack (43
Bellman Ford (30
Lcs (27
Strongly Connected Components (24
Dijkstras Algorithm (14
Subset Sum (7
Related Projects