Opgepast! Het lijkt erop dat je Dodona gebruikt binnen een andere webpagina waardoor mogelijk niet alles goed werkt. Laat dit weten aan de lesgever zodat die het probleem kan oplossen door een instelling in de leeromgeving aan te passen. Ondertussen kan je op deze link klikken om Dodona te openen in een nieuw venster.
Opgepast! De pagina kon niet volledig ingeladen worden, waarschijnlijk door een netwerkprobleem. Het kan zijn dat niet alle functionaliteit beschikbaar is. Probeer de pagina te verversen.
import heapq
from functools import total_ordering
@total_ordering
class SpecialSorted:
def __init__(self, element, value):
self.element = element
self.value = value
def __eq__(self, other):
return self.value == other.value
def __ne__(self, other):
return self.value != other.value
def __lt__(self, other):
return self.value < other.value
class PriorityQueue:
def __init__(self, sortkey = lambda x : x):
self.content = []
self.sortkey = sortkey
def add(self, item):
heapq.heappush(self.content, SpecialSorted(item, self.sortkey(item)))
def peek(self):
return self.content[0].element if self.content else None
def poll(self):
return heapq.heappop(self.content).element if len(self.content) > 0 else None
def is_empty(self):
return len(self.content) == 0
def __str__(self):
return str(heapq.nsmallest(len(self.content), [item.element for item in self.content]))
Python sandbox
In dit venster kan je Python-code uitvoeren zonder iets te moeten installeren. De code die je hier schrijft wordt niet automatisch ingediend in Dodona.