# Algorithms and Data Structures

##### About Algorithms and Data Structures
The application provides comprehensible content on the study of computer algorithms with a focus on interactivity and visualization of each step. By using controls the user goes through the algorithm while observing its work.

The current version of the application covers the following basic computer algorithms and data structures:

I. DATA STRUCTURES
Array,

II. SORTING

Bubble sort,
Selection sort,
Insertion sort,
Merge sort,
Heap sort,
Quick sort

III. BINARY SEARCH TREE

Pre-order traversal,
In-order traversal,
Post-order traversal,
Insertion a node into a binary search tree,
Deleting a node from a binary search tree

IV. HASH-TABLE (chaining technique)

Inserting data into a Hash-table,
Deleting data from a Hash-table

V. GRAPH

Depth-first search,
Minimum Spanning Tree,
Dijkstra's algorithm,
Graph Constructor

The visualization of the algorithms and data structures is accompanied by a piece of code that shows its implementations. There is a direct link between the code and the visualization. The full code of each algorithm can be found by the link to a third-party Internet resource. Although the given code is written in Java and Python, the explanation and visualization of the algorithms are in no way tied to a specific programming language.

Algorithms and Data Structures Interactive Course is designed for a wide range of users and does not require any programming skills to understand this or that algorithm. However, since the application focuses on algorithms, it lacks definitions of data structures (with which the algorithms operate). Therefore, before using Algorithms and Data Structures Interactive Course, it is recommended to be acquainted with such data structures as a binary tree, binary search tree, hash table, stack, queue, graph, etc. Algorithms and Data Structures Interactive Course may also interest experienced programmers, as it enables users with quick and efficient revision of the above algorithms.

The advantage of Algorithms and Data Structures Interactive Course in comparison to other numerous resources for learning algorithms (books, presentations and videos), is that it helps master the material with minimal waste of time since while the user is observing the visual effect at every step, he or she is being involved in the algorithm. There is no need to pause or rewind in order to comprehend the idea of a lecturer as it happens with video-content. The speed of advancement in the Algorithms and Data Structures Interactive Course training program depends on the pace of the user, and not on the speed of a video clip.