Sometimes, storing data with vectors is not the best solution for a problem. We need to store information which is linked between them, in a larger memory space. There are also some situations when we need special data structure to memorize a hierarchy, like a genealogical tree. For such cases and not only, the static data structures are not very helpful. All these disadvantages can disappear once we use the dynamic data structures. The purpose of this book is: a) to make students understand the difference between static and dynamic variables and the role of the pointer variables; b) to point out the advantages of the dynamic allocation; c) to present the different types of data structures dynamically linked (stack, queue, double-linked list, circular list, binary tree); and d) to identify the optimally solvable problems using different types of dynamic structures. Also, some basic operations and many code samples will be presented. Several images will help the reader (teacher or student) for his work. There are also other symbols that mark students' activities. These symbols, together with the explanations from every problem, will turn this book into a useful course book.