Divide and Conquer
Data Structures and Algorithms
![](https://praxit.am/wp-content/uploads/2018/11/quote-1.png)
“The most fundamental problem in software development is complexity. There is only one basic way of dealing with complexity: divide and conquer”
– Bjarne Stroustrup
Lessons
Lessons
- Templates
- Templates - Tips and QA
- Searching and Sorting
- Searching and Sorting - Tips and QA
- Data Structures
- Data Structures - Tips and QA
- Standard Template Library (STL)
- Standard Template Library (STL) - Tips and QA
OBJECTIVES
In this chapter you will learn:
- To use function templates to conveniently create a group of related (overloaded) functions
- To distinguish between function templates and function-template specializations
- To use class templates to create a group of related types
- To distinguish between class templates and class-template specializations
- To overload function templates
- To understand the relationships among templates, friends, inheritance and static members
- To search for a given value in a vector using binary search
- To sort a vector using the recursive merge sort algorithm
- To determine the efficiency of searching and sorting algorithms
- To form linked data structures using pointers, self-referential classes and recursion
- To create and manipulate dynamic data structures such as linked lists, queues, stacks and binary trees
- To use binary search trees for high-speed searching and sorting
- To understand various important applications of linked data structures
- To understand how to create reusable data structures with class templates, inheritance and composition
- To be able to use the template STL containers, container adapters and "near containers"
- To be able to program with the dozens of STL algorithm
- To understand how algorithms use iterators to access the elements of STL containers
- To become familiar with the STL resources available on the Internet and the World Wide Web
HOMEWORKS
Lessons 1 and 2 | ||||
---|---|---|---|---|
D 14.3 | D 14.4 | D 14.5 | D 14.6 | D 14.7 |
D 14.8 | D 14.9 | D 14.10 | D 14.11 | D 14.12 |
D 14.13 | D 14.14 | D 14.15 | D 14.16 | D 14.17 |
D 14.18 | D 14.19 | D 14.20 | D 14.21 | D 14.22 |
D 14.23 |
Lessons 3 and 4 | ||||
---|---|---|---|---|
D 20.5 | D 20.6 | D 20.7 | D 20.8 | D 20.9 |
D 20.10 |
Lessons 5 and 6 | |||||||
---|---|---|---|---|---|---|---|
D 21.6 | D 21.7 | D 21.8 | D 21.9 | D 21.10 | D 21.11 | ||
D 21.12 | |||||||
Lessons 7 and 8 | ||||
---|---|---|---|---|
D 23.12 | D 21.13 | D 21.14 |
- These are the lessons and home works that are mandatory for students who are going to enroll in "C++ Basics" course.
Upcoming C++ Data structures and algorithms Course
![retoric-complexity retoric-complexity](https://praxit.am/wp-content/uploads/elementor/thumbs/retoric-complexity-osijou4i2s7c4vxkj3xgdnqayigy2mbbkx6qp4krvu.jpg)
The next C++ Data Structures and Algorithms course begins on February, 2023.
Hurry to join!