DSA Preparation Guide - Full Answers
Array
1. Reverse an array:
- Swap elements from start and end using a loop.
2. Binary Search:
- Divide and conquer approach, search in sorted array.
3. Linear vs Binary Search:
- Linear: O(n), no need for sorted array
- Binary: O(log n), requires sorted array
4. Second Largest:
- Track two max values while traversing the array.
5. Rotate Left:
- Store first k elements, shift remaining, reinsert saved k.
Stack
1. Stack using array: Use array and top pointer.
2. Infix to Postfix: Stack stores operators, apply precedence.
3. Overflow/Underflow:
- Overflow: pushing into full stack
- Underflow: popping empty stack
DSA Preparation Guide - Full Answers
4. Recursive Reverse: Use recursion and insert at bottom.
5. Stack with structure: Linked implementation using struct.
Queue
1. Queue using array: front and rear pointers.
2. Queue vs Stack: FIFO vs LIFO
3. Circular Queue: Modulo operation to wrap around
4. Dequeue: Double-ended queue; operations at both ends.
5. Full/Empty: Full = (rear+1)%size==front; Empty = front==-1
Linked List
1. Insert at start/end: Use pointers, malloc, link changes.
2. Delete at start/end: Free node, adjust pointers.
3. Search: Traverse using loop.
4. Reverse: Change links using 3-pointer method.
5. Linked List vs Array: Dynamic vs Static size, O(n) vs O(1) access.
Tree
1. Traversals:
- Inorder: LNR
- Preorder: NLR
- Postorder: LRN
DSA Preparation Guide - Full Answers
2. BST Build: Use recursive insert.
3. Insert in BST: If smaller, go left; else right.
4. Definitions:
- Root: Top node
- Leaf: No child
- Height: Max depth
- Depth: Distance from root
- Siblings: Same parent
5. Height Recursive:
- height = 1 + max(left, right)
Mock Test
1. Binary Search: B. O(log n)
2. Recursion uses: C. Stack
3. Output of *(a+2): C. 3
4. Array disadvantage: B. Fixed size
5. Sorted traversal: B. Inorder