- Name: Yashvardhan Jani
- Branch: Computer Science & Engineering (CSE)
- College: Pandit Deendayal Energy University, Gandhinagar, Gujarat, India
- Lab Instructor: Dr. Meera Khanna
- Theory Lecture Instructor: Dr. Himanshu Gajera
Experiment 1: Revision of Arrays
- Linear Search, Binary Search, Sorting Algorithms
- Implementation of Linear and Binary Search
- Bubble Sort, Insertion Sort, Selection Sort
- Finding Min/Max, Second Largest/Smallest elements
Experiment 2: Revision of Structures
- Structure Definition, Arrays of Structures, Nested Structures
- Creating and using structures
- Array of structures for multiple records
- Nested structure implementation
Experiment 3: Revision of Pointers
- Pointers with Arrays, Structures, Functions
- Arrays of pointers and pointers to arrays
- Pointers to structures
- Function parameter passing using pointers
Experiment 4: Linked Lists
- Singly, Doubly, and Circular Linked Lists
- Merging sorted linked lists
- Node insertion (front, middle, end)
- Node deletion operations
- Circular and doubly linked list implementations
Experiment 5: Stack Implementation
- Stack using Array and Linked List
- Stack operations: Push, Pop, Peek
- Recursive stack sorting
- Array and linked list implementations
Experiment 6: Stack Applications
- Expression Conversion and Evaluation
- Infix to Postfix conversion
- Postfix expression evaluation
- Balanced parentheses checking
Experiment 7: Queue Operations
- Queue, Priority Queue, Circular Queue, Deque
- Queue implementation using arrays and linked lists
- Priority Queue operations
- Double-Ended Queue (Deque)
- Circular Queue implementation
Experiment 8: Tree Data Structures
- Binary Trees, BST, Tree Traversals
- Binary Tree insertion, deletion, search
- Pre-order, In-order, Post-order traversals
- Binary Search Tree construction
Experiment 9: Graph Data Structures
- BFS and DFS Traversals
- Breadth First Search (BFS) implementation
- Depth First Search (DFS) implementation
- Cycle detection in graphs
- Minimum Spanning Tree (Kruskal's Algorithm)
Experiment 10: Hashing
-
Hash Functions and Collision Resolution
- Hash table implementation
- Collision handling techniques
- Subset checking using hashing
| Practical Exam - 2025 | Set 01 | Set 02 | Set 03 | Set 04 |
Track your progress through the lab experiments:
- Experiment 1: Arrays
- Experiment 2: Structures
- Experiment 3: Pointers
- Experiment 4: Linked Lists
- Experiment 5: Stack
- Experiment 6: Stack Applications
- Experiment 7: Queue
- Experiment 8: Trees
- Experiment 9: Graphs
- Experiment 10: Hashing
| Data Structure | Search | Insert | Delete | Space |
|---|---|---|---|---|
| Array | O(n) | O(n) | O(n) | O(n) |
| Linked List | O(n) | O(1) | O(1) | O(n) |
| Stack | O(n) | O(1) | O(1) | O(n) |
| Queue | O(n) | O(1) | O(1) | O(n) |
| Binary Tree | O(n) | O(n) | O(n) | O(n) |
| BST (balanced) | O(log n) | O(log n) | O(log n) | O(n) |
| Hash Table | O(n) | O(n) | O(n) | O(n) |
*Worst case complexity
-
Binary Search Tree (Unbalanced):
In the worst case, the tree becomes skewed (like a linked list), leading to O(n) operations. -
Hash Table:
Worst case occurs when multiple keys hash to the same index (collisions),
causing all elements to be stored in a single bucket.
- Clone the repository:
git clone https://github.com/YashvardhanJani/PDEU-DS-Lab-Programs cd PDEU-DS-Lab-Programs
Contributions are welcome! If you have improvements or additional exercises:
-
Fork the Project
- Click on the 'Fork' button at the top right corner
-
Create your Feature Branch
git checkout -b feature/AmazingFeature
-
Commit your Changes
git commit -m 'Add some AmazingFeature' -
Push to the Branch
git push origin feature/AmazingFeature
-
Open a Pull Request
- Go to the original repository and click on 'New Pull Request'
- Follow the existing code style and structure
- Add comments to explain complex logic
- Test your code before submitting
- Update documentation if needed
- Write clear commit messages
⭐ Star this repository if you found it helpful! ⭐
💡 "Algorithms are the soul of computer science and data structures are the building blocks through which algorithms come to life - master them."
This project is licensed under the MIT License - see the LICENSE file for details.