Laboratory roadmap
Fifteen progressive C++ experiments covering the official laboratory work. Each experiment links directly to the concepts and implementation pattern it needs.
Array operations
Traversal, insertion, deletion, reversal, and duplicate handling.
String processing
Palindrome, frequency counting, anagram, and substring tasks.
Singly linked list
Insert, delete, search, reverse, and display.
Doubly and circular lists
Bidirectional updates and cyclic traversal.
Stack implementations
Array and linked stacks; expression applications.
Queue implementations
Linear, circular, linked queues, and deque operations.
Searching techniques
Linear, iterative binary, and boundary searches.
Elementary sorting
Bubble, selection, insertion, and shell sort with counters.
Efficient sorting
Merge, quick, counting, radix, and heap sort.
Binary trees and BST
All traversals plus BST insertion, search, and deletion.
AVL tree
Insertion with LL, RR, LR, and RL rotations.
Heap and priority queue
Build heap, insert, extract, and heap sort.
Graph traversals
Adjacency lists, BFS, DFS, and connected components.
Shortest paths
Dijkstra and Floyd–Warshall with unreachable cases.
MST and disjoint sets
DSU, Prim, and Kruskal on weighted graphs.
Submission checklist
- State the invariant before writing code
- Test empty, single-item, duplicate, and boundary inputs
- Print or assert intermediate state while debugging
- Write time and space complexity beside the program
- Compile with warnings: -Wall -Wextra -pedantic
Compile consistently
g++ -std=c++17 -Wall -Wextra -pedantic main.cpp -o main ./main
Warnings often reveal uninitialised variables, unsafe conversions, and dead code before they become runtime bugs.