#
# Eksamen 1996 August 3
#
# Tue May 18 09:37:30 1999 -- Jens Svalgaard Frederiksen
#

# b)

# elementer implementeres som tupler vha.:

id, prioritet, data = 0,1,2

# sammen med

def makeElement(i,p,d):
  return (i,p,d)

# således at fx. e[prioritet] svarer til et elements prioritet

def makePQ():
  return []

def empty(q):
  return len(q) == 0

def delmin(q):
  if not empty(q):
    # listen forudsættes sorteres, således at elementet
    # med mindst prioritet er først
    e = q[0]
    del q[0]
    return e

def insert(q,e):
  # indætter e i køen, således at denne holdes sorteres efter
  # prioritet
  for i in range(len(q)):
    if q[i][prioritet] > e[prioritet]:
      q.insert(i,e)
      break
  else:
    q.append(e)


#
# Test
#

q = makePQ()
print q                      # []
print empty(q)               # 1

e1 = makeElement(1,3,{})
insert(q,e1)
print q                      # [(1,3,{})]

e2 = makeElement(3,8,{})
insert(q,e2)
e3 = makeElement(3,5,{})
insert(q,e3)
e4 = makeElement(3,2,{})
insert(q,e4)
print q                      # [(3,2,{}), (1,3,{}), (3,5,{}), (3,8,{})]

print empty(q)               # 0

print delmin(q)              # (3,2,{})
print q                      # [(1,3,{}), (3,5,{}), (3,8,{})]


