Course - Algorithms and Data Structures
Description of Algorithms and Data Structures
This course will introduce you to the most important data structures in computer science, as well as the main algorithms, understanding which will allow you to quickly find solutions to complex problems.
Already at the first lesson of the course, we have discussed in detail the evaluation questions runtime algorithms as part of the solution of the problem, since the problems of large size plays an important role not only the power of computational tools, but also the efficiency of the algorithm. Next will be the basic data structure in the context of which we will look into simply connected and doubly linked lists, dynamic arrays, stacks, queues, trees and sets. We get acquainted with the sorting algorithms, the concepts of "hash-table" and "B-trees." The final lesson of this course will be devoted to the solution of practical examples - the traveling salesman problem, the problem of the Towers of Hanoi and the triangulation problem.
Algorithms and data structures that we consider in this course can be implemented in any programming language, for this we will use the C # language, basic knowledge of which would be enough to understand the material.
• Basic knowledge of C # programming language
• Working knowledge of text editors, development environment Visual Studio.
Who should attend
Lesson 1: Introduction to data structures and algorithms. Linked lists.
• The concept of the algorithm and data structure.
• The concept of time and the asymptotic complexity of the algorithm.
• Using the O-notation.
• Overview of the main data structures.
• Overview of the linked list.
• Doubly linked list.
• Examples of implementation of linked lists in C #.
Lesson 2. ArrayList
• Implementation of a dynamic array in C #.
• Overview of the class ArrayList.
• Adding elements to a dynamic array.
• Politicians growth of a dynamic array.
• Removing items from the array.
• Indexing elements.
Lesson 3. Stack and Queue
• An overview of the data structure - the stack.
• Implementation of a stack-based doubly connected lists in C #.
• Methods of Push, Pop, Peek, Count.
• An overview of the data structure - queue.
• Implement methods Enqueue, Dequeue, Peek, Count.
• An overview of the data structure of doubly linked queue (deque).
• The implementation of a doubly linked queue based on lists.
• Implementation of a stack based on doubly linked queue.
• Implementation of a doubly linked queue based on array.
Lesson 4: Trees
• data structure - the tree.
• Implementation of the tree based on the array.
• The implementation of a binary search tree in C #.
• Add, delete, and search tree nodes.
• Direct, inverse and symmetrical tree traversal.
Lesson 5: The set
• data structure - a set.
• Implementation of the class Set.
• Adding and deleting items and search for elements in the set.
• Union, intersection, difference, symmetric difference of two sets.
Lesson 6: Sorting Algorithms
• Bubble sort.
• Insertion sort.
• Selection Sort.
• Merge Sort.
• Shell sort.
Lesson 7: Hash tables
• A description of the data structure - the hash table.
• The hash function.
• Conflicts of hash functions.
• The implementation of a hash table in C #.
Lesson 8. B-trees
• Description of the B-tree.
• Implementation of the B-tree in C #.
• Search, add and delete records in the B-tree.
• Time for tree operations.
Lesson 9: Tasks
• Salesman Problem.
• Towers of Hanoi Problem.
• Problem triangulation.
Completing this course, you will be able to:
• Create classes for working with typical commonly used data structures.
• Distinguish the benefits of using those or other structures in each case