class PriorityQueue:
    """ naive implementation of a priority queue """
    def __init__(self):
	""" initialize new priority queue"""
	self.pq = []

    def insert(self, o):		
	""" insert object into priority queue """
	self.pq.append(o)

    def extractMin(self):
	minelt = self.pq[0]
	minidx = 0
                
	i = 0
	while i < len(self.pq):
	    if self.pq[i] < minelt:
		minelt = self.pq[i]
		minidx = i
	    i = i + 1

	self.pq.pop(minidx)
	return minelt

        # other methods not implemented 


class Event:
    def __init__(self, time):
	self.time = time

    def __cmp__(self, other):
	return self.time - other.time

    def __str__(self):
	return "Event at time " + str(self.time)

e1 = Event(100)
e2 = Event(200)

pq = PriorityQueue()
pq.insert(e1)
pq.insert(e2)
print pq.extractMin()
print pq.extractMin()
