Loading...
Loading...
Data Structure ek organized tarika hai data ko store, manage aur access karne ka. Sahi data structure choose karna program ki efficiency ko 10x–100x improve kar sakta hai.
Types:
Array ek contiguous memory mein same-type elements ka collection hai.
// Java Array Example
int[] marks = {85, 90, 78, 92, 88};
System.out.println(marks[2]); // Output: 78
| Operation | Time Complexity | |-----------|----------------| | Access | O(1) | | Search (linear) | O(n) | | Insert at end | O(1) amortized | | Insert at middle | O(n) | | Delete | O(n) |
2D Arrays (Matrix):
int[][] matrix = new int[3][3];
// Row-major order mein store hota hai memory mein
for(int i = 0; i < 3; i++)
for(int j = 0; j < 3; j++)
matrix[i][j] = i * 3 + j;
Node = Data + Pointer (next node ka address)
class Node {
int data;
Node next;
Node(int d) { data = d; next = null; }
}
class LinkedList {
Node head;
// Insert at beginning — O(1)
void insertFront(int data) {
Node newNode = new Node(data);
newNode.next = head;
head = newNode;
}
// Delete by value — O(n)
void delete(int key) {
Node temp = head, prev = null;
if (temp != null && temp.data == key) {
head = temp.next;
return;
}
while (temp != null && temp.data != key) {
prev = temp;
temp = temp.next;
}
if (temp == null) return;
prev.next = temp.next;
}
}
Types:
Last In First Out — jaise plate stack ya browser back button.
import java.util.Stack;
Stack<Integer> stack = new Stack<>();
stack.push(10); // [10]
stack.push(20); // [10, 20]
stack.push(30); // [10, 20, 30]
System.out.println(stack.pop()); // 30 — LIFO
System.out.println(stack.peek()); // 20 — top without remove
Applications:
Balanced Parentheses Algorithm:
boolean isBalanced(String expr) {
Stack<Character> s = new Stack<>();
for (char c : expr.toCharArray()) {
if (c == '(' || c == '{' || c == '[') s.push(c);
else {
if (s.isEmpty()) return false;
char top = s.pop();
if (c == ')' && top != '(') return false;
if (c == '}' && top != '{') return false;
if (c == ']' && top != '[') return false;
}
}
return s.isEmpty();
}
First In First Out — jaise line/queue mein wait karna.
import java.util.LinkedList;
import java.util.Queue;
Queue<Integer> queue = new LinkedList<>();
queue.add(10); // enqueue
queue.add(20);
queue.add(30);
System.out.println(queue.poll()); // 10 — FIFO
System.out.println(queue.peek()); // 20
Types:
Tree ek hierarchical non-linear data structure hai.
Terminology:
Har node ke maximum 2 children hote hain.
class BST {
Node root;
void insert(int data) {
root = insertRec(root, data);
}
Node insertRec(Node root, int data) {
if (root == null) return new Node(data);
if (data < root.data) root.left = insertRec(root.left, data);
else if (data > root.data) root.right = insertRec(root.right, data);
return root;
}
// Inorder traversal → sorted output
void inorder(Node root) {
if (root != null) {
inorder(root.left);
System.out.print(root.data + " ");
inorder(root.right);
}
}
}
Tree Traversals: | Traversal | Order | Use | |-----------|-------|-----| | Inorder | Left → Root → Right | BST sorted output | | Preorder | Root → Left → Right | Copy tree | | Postorder | Left → Right → Root | Delete tree | | Level Order | Level by level | BFS |
| Algorithm | Best | Average | Worst | Space | Stable | |-----------|------|---------|-------|-------|--------| | Bubble Sort | O(n) | O(n²) | O(n²) | O(1) | ✅ | | Selection Sort | O(n²) | O(n²) | O(n²) | O(1) | ❌ | | Insertion Sort | O(n) | O(n²) | O(n²) | O(1) | ✅ | | Merge Sort | O(n log n) | O(n log n) | O(n log n) | O(n) | ✅ | | Quick Sort | O(n log n) | O(n log n) | O(n²) | O(log n) | ❌ | | Heap Sort | O(n log n) | O(n log n) | O(n log n) | O(1) | ❌ |
// Merge Sort Implementation
void mergeSort(int[] arr, int left, int right) {
if (left < right) {
int mid = (left + right) / 2;
mergeSort(arr, left, mid);
mergeSort(arr, mid + 1, right);
merge(arr, left, mid, right);
}
}
void merge(int[] arr, int left, int mid, int right) {
int n1 = mid - left + 1, n2 = right - mid;
int[] L = new int[n1], R = new int[n2];
System.arraycopy(arr, left, L, 0, n1);
System.arraycopy(arr, mid + 1, R, 0, n2);
int i = 0, j = 0, k = left;
while (i < n1 && j < n2)
arr[k++] = (L[i] <= R[j]) ? L[i++] : R[j++];
while (i < n1) arr[k++] = L[i++];
while (j < n2) arr[k++] = R[j++];
}
Hash Function key ko fixed-size index mein convert karta hai.
// Simple hash function
int hash(String key, int size) {
int hash = 0;
for (char c : key.toCharArray())
hash = (hash * 31 + c) % size;
return hash;
}
Collision Handling:
import java.util.HashMap;
HashMap<String, Integer> map = new HashMap<>();
map.put("Alice", 95);
map.put("Bob", 88);
System.out.println(map.get("Alice")); // 95
System.out.println(map.containsKey("Bob")); // true
Q: Stack aur Queue mein kya difference hai? A: Stack LIFO (Last In First Out) hai, Queue FIFO (First In First Out). Stack mein push/pop ek hi end se, Queue mein enqueue/dequeue alag ends se.
Q: O(n log n) sorting algorithms kaunse hain? A: Merge Sort, Heap Sort, aur average case mein Quick Sort.
Q: Linked List mein mid element kaise dhundein? A: Two pointer technique — slow (1 step) aur fast (2 step) pointers. Jab fast end pe pahunche, slow mid pe hoga.
Complete Data Structures notes for B.Tech IT Sem 2 — Arrays, Linked Lists, Stacks, Queues, Trees, Sorting, Searching with C/Java examples, viva questions, and exam tips.
42 pages · 2.1 MB · Updated 2026-03-11
Syllabus almost same hai, lekin IT mein practical implementation Java/Python mein hoti hai aur application-based problems zyada hote hain.
Stack: browser back button, undo/redo, function call stack. Queue: print spooler, CPU scheduling, BFS graph traversal.
Average case O(log n) search, insert, delete. Sorted data ko efficiently store aur retrieve kar sakta hai.
Array: random access chahiye, size known ho. Linked List: frequent insert/delete ho, size dynamic ho.
Key-value mapping O(1) average case mein. Databases, caches, password storage, symbol tables mein use hota hai.
Object Oriented Programming with Java — B.Tech IT Sem 2
Object Oriented Programming
Digital Electronics — Complete Notes IT Sem 1
Digital Electronics
Java Programming — Complete Notes for B.Tech IT Semester 3
Java Programming
Web Technologies — HTML, CSS, JavaScript, Node.js Complete Notes
Web Technologies
Cloud Computing Notes — B.Tech IT Sem 5
Cloud Computing
Your feedback helps us improve notes and tutorials.