Advanced Data Structures and Algorithms
Lecture Notes
Computer Science Department
June 2025
Table of Contents
1. Introduction...........................................1
2. Trees and Balanced Trees..............................3
3. Graph Algorithms......................................7
4. Hashing and Hash Tables...............................11
5. Advanced Data Structures (Heaps, Tries)...............15
6. Conclusion and References.............................19
1. Introduction
In this lecture, we explore advanced data structures and algorithms
that optimize performance for various computational tasks.
We cover trees, graphs, hashing, and specialized structures.
2. Trees and Balanced Trees
2.1 Binary Search Trees (BST)
- Definition and properties
- Operations: search, insert, delete (O(h) time)
2.2 AVL Trees
- Height-balanced BST
- Rotations to maintain balance (single and double rotations)
2.3 Red-Black Trees
- Properties and color constraints
- Insertion and deletion algorithms
3. Graph Algorithms
3.1 Graph Representations
- Adjacency matrix vs adjacency list
3.2 Traversal Algorithms
- Depth-First Search (DFS)
- Breadth-First Search (BFS)
3.3 Shortest Path Algorithms
- Dijkstra's Algorithm (non-negative weights)
- Bellman-Ford Algorithm (handles negative weights)
3.4 Minimum Spanning Trees
- Kruskal's Algorithm
- Prim's Algorithm
4. Hashing and Hash Tables
4.1 Hash Functions
- Requirements for good hash functions
4.2 Collision Resolution
- Chaining
- Open addressing (linear probing, quadratic probing, double hashing)
4.3 Applications of Hash Tables
- Caches
- Symbol tables in compilers
5. Advanced Data Structures
5.1 Heaps
- Binary heap: array implementation, heap operations (O(log n))
5.2 Tries
- Prefix trees for string retrieval
- Operations: insert, search, delete
5.3 Other Structures
- Segment trees
- Fenwick (Binary Indexed) trees
6. Conclusion and References
This document provided an overview of advanced data structures
and algorithms essential for high-performance applications.
References:
1. Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009).
Introduction to Algorithms. MIT Press.
2. Sedgewick, R., & Wayne, K. (2011). Algorithms. Addison-Wesley.
3. Goodrich, M. T., Tamassia, R., & Goldwasser, M. H. (2014).
Data Structures and Algorithms in Java. Wiley.