Prashant | Sat, 22 Aug, 2020 | 129

**Data structure is a logical or mathematical organization of data**; it describes how to store the data and access data from memory. Actually in our programming data stored in main memory(RAM) and To develop efficient software or firmware we need to care about memory. To efficiently manage we required **data structure**.

There are two different types of **data structure**:

**Linear Data Structure:**In linear data structure data elements stored in sequential manner. Stack, Queue and Linked List are the types of linear data structures.**Non Linear Data Structure:**In Non-Linear data structure data elements are not stored in the sequence manner. Tree and Graph are the type of non-linear data structure.

List of **Data Structure Tutorial** topics...

- Structured Programming, its Advantages and Disadvantages.
- Data Structure types and operations associated with them.
- Introduction of Data Structure.
- Linear, Binary & Interpolation search.

- Array Data Structure
- Array coding problems

- Introduction to Linked List
- Single Linked list and its basic operations with traversing implementation
- Single linked list insertion
- Single linked list deletion
- Deleting a node from a linked list without head pointer
- Implement union and intersection of two sorted linked lists

- Stack
- Implement of stack using array
- Implementation of Multi Stack in C
- Nesting of parentheses using stack
- Check for balanced parentheses by using Stacks (C++ program)
- Double Stack
- Implementation of Stack using two Queues

- Linear Queue
- Circular Queue
- Double Ended Queue (DeQueue)
- Priority Queue
- Implementation of Queue using two Stacks

- Hashing Data Structure
- Hash functions and its characteristics
- Collisions in Hashing and Collision Resolution Techniques
- Hashing | Separate chaining for collision resolution
- Hashing | Open addressing for collision handling
- Hashing coding problems

- Tree Data structure
- Introduction to Trees and its terminologies.
- Binary tree, Definition and its properties.
- Binary Tree representation (Sequential and Link).
- Traversal technique for Binary Tree.
- Insertion in Binary Search Tree (BST).
- Deletion in Binary Search Tree (BST).
- Find Height (Maximum Depth) of a Binary Search Tree (C++ program).
- Find the Number of Nodes in a Binary Search Tree (C++ program).
- Find the number of leaf nodes in a Binary Tree | Data Structure.
- Find whether two trees are structurally identical or not | Data Structure.
- AVL Tree, Left and right rotations.
- Introduction to B Tree and its operations
- Red Black Tree (Properties, Advantages, Inserting Nodes).
- Interval Tree in Data Structure.
- Threaded Binary Tree | Data Structure.
- Level Order Traversal on a Binary Tree | Data Structure.
- Segment Trees
- Construct a Binary Tree from Postorder and Inorder Traversal

- Introduction to Graph in Data Structure
- Representation of a Graph in Data Structure
- Breath First Search (BFS) of a Graph
- Depth First Search (DFS) of a Graph
- Cycle Detection in an Undirected Graph
- Cycle Detection in a Directed Graph
- Prim's Minimum Spanning Tree
- Count all the possible path between two vertices
- Insertion and deletion of nodes and edges in a graph using adjacency list

- Heap Sort (Introduction, Algorithm and Program using C).

**Data Structure programs using C/C++**

- Quick Sort in C++ with Algorithm, Example.
- Merge Sort in C++ with Example.
- Counting Sort with C++ Example.
- Implement shell sort using C++ program.
- Dijkstra’s Algorithm: Explanation and Implementation with C++ program.
- C++ print Postorder traversal from Preorder and Inorder traversal of a tree.
- Infix To Postfix Conversion Using Stack [with C program].
- Evaluation of Postfix Expressions Using Stack [with C program].
- Maximum Sum Helix path (using C++ program).
- Tower of Hanoi using recursion (C++ program).
- Find in-order Successor and Predecessor in a BST using C++ program.
- Implement in-order traversal using C++ program.
- Implement post-order traversal using C++ program.
- Implement pre-order traversal using C++ program.
- Find occurrence of each element in an array using simple method O(n^2) and hashing O(n) time.
- Check for balanced parentheses by using Stacks (C++ program)

**Competitive Questions**

- Aggressive Cows (On Binary Search)
- Find Maximum Range of Query using Segment Trees

**Misc.**

- Augmenting Data Structure.
- Tail Recursion and Tower of Hanoi using C.
- Asymptotic Notations.
- Hashing (Hash table, Hash functions and its characteristics).
- Hamiltonian Cycle in Data Structure.