We start our C Language learning with syntaxs, keywords, data types and writing small size programs with these. As we progress we learn how to write large programs to solve more complex problems. We use more comples data types and more elaborate functions and modules. Data structure and algorithms is the subject in computer science which has a significant role in the field of computer programming and in almost all fields like, database, operating system, applications, system software and embedded system every where it is used. Different types of sreaching algorithms are used in database servers. Further more binary tree, hash tables and recursions are widely used in the complicated subjects like compiler construction.

Discussion of data structures starts with structures and arrays. Lists are the most applied data structures used in computer science. Each element in the list is linked with each other using pointers.

There are four types of lists

There are two very important mechanisms has been implemented using these list and they are:

1. Queue or FIFO(First in First out)
2. Stack or LIFO(Last is First out).

Algorithms are used to solve complex analytical and decision making problems. Algorithms for sorting are used to sort elements of a list. Common sorting algorithms are used like

1. Bubble Sort
2. Selection Sort
3. Insertion Sort

Trees are another complex data structure. The simplest of a tree datastructure is binary tree. A node in a binary tree has two child node called left and right. Binary trees are useful to make decision and divide the element groups into two parts.

Algorithms are also used to find an element inside a list or array. Sequential search is a simple and basic search algorithm. Binary search is a more efficient algorithm using binary trees. It mainly divides the element group in two parts and reduces the complexity by half in each iteration.

Binary trees are also used in sorting to make the sorting more efficient. Quick sort is an algorithm using binary tree which divides the elements in two parts and sort recursively. Similar sorting algorithms are heap, merge and radix sorts.

Algorithms like recursion are used to calculate or solve problems where problem domain are recursive or problem has same problem inside it.

We are starting our discussion with arrays in the next section. We have elaborated all of the above sections in next coming pages. Please visit all the following sections and get detailed ideas in each section. Most of the sections have example code and graphical representation of the topic to easily understand the section. Practice with the examples and learn the subjects easily.