CONTENTS
1. Introduction to Data Structure
1. Introduction
2. Fundamentals of Data Structure
2.1 Need of Data Structure
2.2 Implementation of Data Structure
2.3 Data Definition
2.4 Data Object
2.5 Data Type
2.6 Abstract Data Types (ADT)
2.7 Data Structure and Structured Types
2.8 Atomic Type
2.9 Classification of Data Structure
2.10 Representation of Data Structure
3. Operations on Data Structures
4. Array
4.1 What is an array?
5. Storage Representation of Arrays
6. Applications of Arrays
7. Polynomial Representation using Arrays
7.1 Addition of Two Polynomials
7.2 Multiplication of Two Polynomials
8. Sparse Matrices
8.1 Addition of Sparse Matrices
8.2 Transpose of a Sparse Matrix
2. Stacks
1. Introduction
2. Definition of Stack
2.1 Example of Stack
2.2 Stack as an Abstract Data Type
3. Primitive Operations on Stack
3.1 Stack Terminology
3.2 Differentiate between Stack and Array
4. Implementation of Stack
4.1 Static Implementation (Representation of Stacks through Arrays)
4.2 Dynamic Implementation (Representation of Stacks through Linked List)
4.3 Comparison of Static Implementation and Dynamic Implementation
5. Detail Operations of Stack
5.1 Stack Creation
5.2 Push Operation Concept
5.3 POP Operation Concept
5.4 Checking for Stack Empty Condition
5.5 Checking for Stack Full Condition
6. Applications of Stack
7. Recursion
7.1 Rules for Recursion
7.2 Advantages and Disadvantages of Recursion
7.3 Applications of Recursion
7.4 Tower of Hanoi Problem
8. Expression Conversion and Evaluation
8.1 Conversion of Infix Expression to Postfix Form
8.2 Conversion of Infix Expression to Prefix Form
9. Multiple Stacks
10. Matching Parenthesis in an Expression
11. Reversing a String
3. Queues
1. Introduction
2. Definition of Queue
2.1 Queue as an Abstract Data Type
2.2 Structure of Queues
2.3 Distinguish between Stack and Queue
3. Primitive Operations on Queue
4. Representation of Queues
4.1 Linear Queue (Representation of a Queue using Array)
4.2 Representation of Linear Queue using Linked List
5. Types of Queues
5.1 Circular Queue
5.2 Priority Queue
6. Double Ended Queue (Dequeue)
6.1 Operations in Deque
7. Applications of Queues
8. Multiple Queues
9. CPU Scheduling Algorithms
4. Linked List
1. Introduction
2. Drawbacks of Sequential Storage
3. Concept of Linked List
3.1 Linked List as Abstract Data Type
4. Implementation of Linked List
4.1 Implementation of Linked Lists using Arrays
4.2 Implementation of Linked Lists using Dynamic Variables (Pointers)
4.3 Types of Linked List
4.4 Terminologies of Linked List
5. Operations on Linked List
6. Singly Linked List
6.1 Representation of Linked List using C++
6.2 Creating a Singly Linked List
6.3 Inserting an Element into Singly Linked List
6.4 Deleting an Element from the List
6.5 Displaying the Contents of the Linked List
6.6 Searching a Node in the Linked List
6.7 Counting the Number of Nodes in a Linked List
6.8 Reversing a Linked List
6.9 Copying a Linked List
6.10 Concatenating Two Linked list
6.11 Erasing the Linked List
7. Representation of Polynomial
7.1 Function for Creation of Node
7.2 Logic for Polynomials Addition by Linked List
8. Circular Linked List
8.1 Singly Circular Linked List
9. Doubly Linked List
9.1 Definition of Doubly Linked List
9.2 Operations on Doubly Linked List
10. Doubly Circular Linked List
11. Comparison of Sequential (Array) and Linked Organizations (Linked List)
12. Comparison of Singly Linked List and Doubly Linked List
13. Generalized Linked List
14. Header Linked List
5. Trees
1. Introduction
2. Tree Terminology
3. Types of Trees
3.1 General Tree
3.2 Binary Tree
4. Representation of Binary Tree
5. Operations on Binary Tree
6. Binary Search Tree (BST)
7. Searching in Trees
7.1 Breadth First Traversal (BFS)
7.2 Depth First Traversal (DFS)
8. Threaded Binary Trees
8.1 Node Structure
8.2 Creating a Threaded Binary Tree
8.3 Inorder Traversal of a Threaded Binary Tree
9. AVL Trees
10. B - Trees
6. Graphs
1. Introduction
2. Graph
3. Graph Terminology
4. Graph-Abstract Data Type
5. Representation of Graphs
5.1 Sequential Representation of a Graph
5.2 Warshall's Algorithm; Shortest Path
5.3 Adjacency List Implementation of a Graph
6. Traversal of Graphs
6.1 Breadth First Search
6.2 Depth First Search
7. Applications of Graphs
8. Algorithms for Minimal Spanning Trees
9. Spanning Tree
9.1 Prim's Algorithm
9.2 Kruskal’s Algorithm
10. Shortest Path Algorithm for Graph
10.1 Dijkstra’s Shortest Path Algorithm