Overview of introductory lectures covering language basics, algorithm analysis, and data structures.
C vs Java Comparison
- Basic syntax and structures in both languages
- Memory management differences
- String, array, and data handling
Algorithm Efficiency in Practice
- O(n²) vs O(n) algorithm comparison
- Performance measurements
- Finding duplicates problem with different approaches
Dynamic Arrays Implementation
- C and Java implementations side-by-side
- Automatic resizing strategies
- Growth and shrinking mechanics
- Amortized time complexity
Singly Linked List Implementation
- C++ and Java implementations
- Node-based data structure
- Dynamic memory allocation
- Insert, delete, and traversal operations
Doubly Linked List Implementation
- C++ and Java implementations
- Bidirectional traversal
- Previous and next pointers
- Enhanced deletion operations
Stack Data Structure & Applications
- Array and linked list implementations
- LIFO principle demonstration
- Parenthesis matching, postfix evaluation, infix to postfix conversion
- C++ and Java implementations
Queue Data Structure Implementation
- Circular array and linked list implementations
- FIFO principle demonstration
- Efficient space utilization with circular arrays
- C++ and Java implementations
Each lecture folder has its own README with file descriptions and instructions to run the code.
# Example: Run C code from lec1
cd lec1_asymptotic
gcc compare.c -o compare && ./compareFor Java code, compile and run similarly using javac and java commands as specified in each lecture's README.
javac ClassName.java
java ClassName