Summary: CSE 241 Algorithms and Data Structures
Lab 4: Graphs
Assigned: 03/30/2011 Due Date: 04/27/2011
You must read and sign the following statement to get credit for this assignment:
I have read and understood the CSE 241 collaboration policy posted on the course web site. I understand
that these rules govern homeworks, labs, and exams assigned in this class, and that violations are subject to
severe penalties. I have neither violated the collaboration policy nor helped others to violate it in completing
This lab has two parts. The final goal is to plan a flight from a starting airport to any number of destination
airports. In particular, you want to find the shortest path from the source aiport to many destination airports.
In order to do so, in part A, you will implement a priority queue in the form of a min heap, and in part
B, you will implement Dijkstra's algorithm for shortest paths using the min heap from part A.
2 Part A: Implement a Min-First Priority Queue (60%)
Implement a template/generic class PriorityQueue based on the binary heap data structure de-
scribed in class. The queue maintains a collection of records of type T, each associated with an integer-