0% found this document useful (0 votes)
2 views5 pages

Advanced Data Structures and Algorithms Class Notes (1)

The document contains class notes on advanced data structures and algorithms, covering topics such as abstract data types, balanced trees (AVL and Red-Black), B-Trees, heaps, graph structures, and advanced graph algorithms like Dijkstra's algorithm. Key operations and use cases for each data structure are discussed, along with pseudo-code for Dijkstra's algorithm and its time complexity. Additionally, references for further reading are provided.

Uploaded by

fm4044826
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views5 pages

Advanced Data Structures and Algorithms Class Notes (1)

The document contains class notes on advanced data structures and algorithms, covering topics such as abstract data types, balanced trees (AVL and Red-Black), B-Trees, heaps, graph structures, and advanced graph algorithms like Dijkstra's algorithm. Key operations and use cases for each data structure are discussed, along with pseudo-code for Dijkstra's algorithm and its time complexity. Additionally, references for further reading are provided.

Uploaded by

fm4044826
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Advanced Data Structures

and Algorithms Class Notes

Department of Computer Science - University Lecture


Table of Contents

1. Introduction to Abstract Data Types...................................1


2. Balanced Trees (AVL, Red-Black).........................................3
3. B-Trees and B+ Trees.....................................................7
4. Heaps and Priority Queues................................................12
5. Graph Structures (Adjacency List/Matrix)................................15
6. Advanced Graph Algorithms (Dijkstra, A*)...............................19
7. Hashing Techniques and Applications.....................................24
8. Dynamic Programming and Advanced Greedy Strategies......................28
9. References and Further Reading..........................................32
2. Balanced Trees
2.1 AVL Trees

AVL trees are height-balanced binary search trees. They maintain the balance
factor property: for any node, the heights of left and right subtrees differ
by at most 1. This guarantees O(log n) search, insertion, and deletion.

Key operations:
- Rotations (single and double) to restore balance after insert/delete.
- Calculation of balance factor and subtree heights.

Use cases: memory-efficient sorted data storage, index implementations.


6. Advanced Graph Algorithms
6.1 Dijkstra's Algorithm

Dijkstra's algorithm finds the shortest path from a source vertex to all other
vertices in a weighted graph with non-negative edges. It uses a priority queue
to repeatedly select the vertex with the minimum tentative distance.

Pseudo-code:
1. Initialize distances: dist[source] = 0, others = infinity
2. Insert all vertices into min-priority queue keyed by dist
3. While queue not empty:
a. Extract u with minimum dist
b. For each neighbor v of u, relax edge (u, v)
if dist[u] + weight(u,v) < dist[v], update dist[v]

Time complexity: O((V + E) log V) with a binary heap.


References and Further Reading

1. Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to Algorithms.
2. Goodrich, M. T., Tamassia, R., & Goldwasser, M. H. (2014). Data Structures & Algorithms in Java.
3. Sedgewick, R., & Wayne, K. (2011). Algorithms, 4th Edition.
4. Weiss, M. A. (2013). Data Structures and Algorithm Analysis in C++.

You might also like