Design Oriented Data Structures Through C

1.1 Definitions
1.2 Concept of Data Structures
1.3 Overview of Data Structures
1.4 Implementation of Data Structures

2.1 Definition
2.2 Terminology
2.3 Memory Allocation for a Linear list
2.4 Operations on Linear Lists

3.1 Definition
3.2 Single Linked List
3.2.1 Representation of a Single Linked List
3.2.2 Operations on a Single Linked List
3.3 Double Linked Lists
3.3.1 Representation of a Double Linked List
3.3.2 Operations on a Double Linked List
3.4 Single Circular Linked List
3.4.1 Representation of a Single Circular Linked List
3.4.2 Operations on a Single Circular Linked List
3.5 Double Circular Linked List
3.5.1 Representation of a Double Circular Linked List
3.5.2 Operations on a Double Circular Linked List
3.6 Application of Linked Lists
3.6.1 Sparse Matrix Manipulation
3.6.2 Polynomial Representation
3.6.3 Dynamic Storage Management

4.1 Introduction
4.2 Definition
4.3 Representation of Stack
4.3.1 Linear List representation of Stacks
4.3.2 Linked List Representation of Stacks
4.4 Operations on Stacks

4.5.1 Evaluation of Arithmetic Express
4.5.2 Code Generation for Stack Machine
4.5.3 Implementation of Recursion
4.5.4 Factorial Calculation
4.5.5 Quick Sort
4.5.6 Tower of Hanoi Problem
4.5.7 Activation Record Management

5.1 Introduction
5.2 Definition
5.3 Representation of Queues
5.3.1 Representation of Queue using Linear List
5.3.2 Representation of Queue using Linked List
5.4 Various Queue Structures
5.4.1 Circular Queue
5.4.2 Deque
5.4.3 Priority Queue
5.5 Application of Queues
5.5.1 Simulation
5.5.2 CPU Scheduling in Multiprogramming environmentl
5.5.3 Round Robin Algorithm

6.1 Rectangular Tables
6.2 Jagged Tables
6.3 Inverted Tables
6.4 Hash Tables
6.4.1 Hashing Techniques
6.4.2 Collision Resolution Techniques
6.4.3 Closed Hashing
6.4.4 Open Hashing
6.4.5 Comparison of Collision Resolution Techniques

7.1 Basic Terminologies
7.2 Definition and Concepts
7.2.1 Binary Trees
7.2.2 Properties of Binary Tree
7.3 Representation of Binary Tree
7.3.1 Linear Representation of a Binary Tree
7.3.2 Linked Representation of Binary Tree
7.3.3 Physical Implementation of Binary Tree in Memory
7.4 Operations on Binary Tree
7.4.1 Insertion
7.4.2 Deletion
7.4.3 Traversals
7.4.4 Merging of Two Binary Trees
7.5 Types of Binary Trees
7.5.1 Expression Tree

7.5.2 Binary Search Tree
7.5.3 Heap Trees
7.5.4 Threaded Binary Trees
7.5.5 Height Balanced Binary Tree
7.5.6 Weighted Binary Tree
7.5.7 Decision Trees
7.6 Tees and Forests
7.6.1 Representation of Trees
7.7 B Trees
7.7.1 B Tree Indexing
7.7.2 Operations on a B Tree
7.7.3 Lower and Upper Bounds of a B Tree
7.8 B+ Tree Indexing
7.9 Trie Tree Indexing
7.9. I Trie Structure
7.9.2 Operations on Trie
7.9.3 Applications of Tree Indexing

8.1 Introduction
8.2 Graph Terminologies
8.3 Representation of Graphs
8.3.1 Set Representation
8.3.2 Linked Representation
8.3.3 Matrix Representation
8.4 Operations on Graphs
8.4.1 Operations on Linked List Representation of Graphs

8.4.2 Operations on Matrix Representation of Graphs
8.5 Application of Graph Structures
8.5.1 Shortest Path Problem
8.5.2 Topological Sorting
8.5.3 Minimum Spanning Trees
8.5.4 Connectivity in a Graph
8.5.5 Euler's and Hamiltonian Circuits

8.6 BDD and its Applications
8.6.1 Conversion of Decision Tree into BDD
8.6.2 Applications of BDD

9.1 Definition and Terminologies
9.2 Representation of Sets
9.2.1 List Representation of Set
9.2.2 Hash Table Representation of Set
9.2.3 Bit Vector Representation of Set
9.2.4 Tree Representation of Set
9.3 Operations of Sets
9.3.1 Operation on List Representation of Set
9.3.2 Operations on Hash Table Representation of Set
9.3.3 Operations on Bit Vector Representation of Set
9.3.4 Operation on Tree Representation of Set
9.4 Applications of Sets
9.4.1 Spelling Checker
9.4.2 Information System using Bit Strings
9.4.3 Client-server Environment