Advance data structure from MCA
This project demonstrates the implementation of advanced data structure concepts and searching/sorting algorithms in a step-by-step manner.
It includes practical applications such as expression conversion and evaluation, stack and linked list operations, and infix convertions.
- Simple search algorithm that traverses the list sequentially to find a target value.
- Time Complexity: O(n)
- Efficient searching technique for sorted lists using a divide-and-conquer approach.
- Time Complexity: O(log n)
- Repeatedly swaps adjacent elements if they are in the wrong order.
- Time Complexity: O(n²)
- Repeatedly selects the smallest element and places it in the correct position.
- Time Complexity: O(n²)
- Builds the sorted array one element at a time by inserting elements into their correct position.
- Time Complexity: O(n²)
- Converts an infix expression (e.g.,
A + B * C) to postfix (e.g.,A B C * +) using a stack.
- Evaluates postfix expressions using a stack-based approach.
- Converts an infix expression (e.g.,
A + B * C) to prefix (e.g.,+ A * B C) using a stack.
- Evaluates prefix expressions using a stack.
- Implements stack operations (
Push,Pop,Peek,Display) using a singly linked list. - Demonstrates dynamic memory allocation and pointer manipulation.
- Checks whether parentheses in an expression are balanced or missing.
- Uses stack operations to ensure every opening bracket has a corresponding closing one.
✅ Balanced → (A+B)*(C+D)
❌ Unbalanced → (A+B*(C+D)
- Operations: Insert, Delete, Display, Traverse
- Features: Sequential traversal in one direction.
- Operations: Insert, Delete, Display, Traverse
- Features: Each node has pointers to both previous and next nodes.
- Grounded Header Linked List – The last node points to
NULL. - Two-Way (Doubly) Header Linked List – Both head and tail pointers maintained using a special header node.
- Maintains front and rear pointers for efficient insertion/deletion at both ends.
- Searching & Sorting
- Stack operations
- Expression Conversion (Infix ↔ Postfix ↔ Prefix)
- Linked List Variations
- Parentheses Balancing
📁 Advanced-Data-Structures
│
├── Searching/
│ ├── linear_search.java
│ └── binary_search.java
│
├── Sorting/
│ ├── bubble_sort.java
│ ├── selection_sort.java
│ └── insertion_sort.java
│
├── Stack/
│ ├── infix_to_postfix.java
│ ├── postfix_evaluation.java
│ ├── infix_to_prefix.java
│ ├── prefix_evaluation.java
│ ├── stack_linkedlist.java
│ └── parenthese_balancer.java
│
├── Linked_Lists/
│ ├── singly_linked_list.java
│ ├── doubly_linked_list.java
│ ├── header_linked_list.java
│ └── doubly_ended_linked_list.java
│
└── README.mdName: Sayed Mohd. Kaif
Course: Advanced Data Structures
Institution: GNIMS / Mumbai University
Instructor: Sandhya Kapil Thakkar