Good, good data structures
Miscellaneous / / December 05, 2023
This course - another important step in your development as a competent IT specialist in the field of programming. Once you have learned the basic capabilities of the language, its object-oriented component, the next logical step is study of typical, frequently used data structures, knowledge of their strengths and weaknesses for effective use in their projects.
Any more or less reliable program uses at least one simple data structure, for example, arrays. And in more complex projects there are always more complex ones like linked lists, hash tables, sets, associative arrays, and so on. You need to know all this so that your programs turn out as fast as possible and at the same time use the device memory sparingly. Moreover, almost always during job interviews for the position of a programmer they are asked questions about data structures and methods for assessing the complexity of algorithms, usually from a “big O” perspective (Big O). All these important topics are included in this course. Completing it will allow you not only to write algorithms more confidently, but also to be more successful in interviews for future employment.
Learning to estimate the computational complexity of algorithms
1. Introduction to Big O
2. Big O with logarithmic and factorial complexity
The simplest data structures
1. Static array
2. Static array in C++
3. Dynamic array
4. Dynamic array in Python
5. Dynamic array in C++
Linked lists
1. Singly linked list
2. Singly linked list in C++
3. Doubly linked list
4. Doubly linked list in C++ from scratch
5. List class of a doubly linked list of the C++ STL library
Queues and stack
1. FIFO and LIFO queues
2. collections.deque queue in Python
3. Queue deque class of the C++ STL library
4. Stack
5. Implementation of a stack in Python and C++
Trees and sets
1. Binary trees
2. Methods for traversing and removing vertices of a binary tree
3. Binary tree in Python
4. Sets. Set Operations
5. Sets and multisets in C++
6. STL library map container in C++
7. Prefix (loaded, Trie) tree. Associative Arrays
Hash tables
1. Hash tables
2. Universal Hashing
3. Open addressing method. Double hashing
4. Hash tables in Python and C++