das ist meine erste Frage hier überhaupt, also könnte Formatierung und solche ein wenig aus sein. Bitte hassen sie mich nicht :)Wie kann ich die Prioritätswarteschlange implementieren, ohne integrierte Funktionen zu verwenden?
Also, was ich tue, eine Klasse macht genannt PQUEUE und was ich bereits:
class qNode:
def __init__(self,data=None, next=None):
self.data = data
self.next = next
def __str__(self):
return str(self.data)
class PQUEUE:
def __init__(self):
self.head = None
self.foot = None
def push(self, value=None, priority=0):
#This is what I want to make
def pop(self):
x = self.front.data
self.front = self.front.next
return x
def clear(self):
self._head = None
self._foot = None
Ich versuche, eine Prioritätswarteschlange Klasse machen zu machen (wie Sie kann sehen) ohne heapq/queue-klassen oder die eingebauten listenmethoden zu verwenden.
Was ich nicht herausfinden kann ist, wie ich weitermachen würde. Ich habe versucht, überall online zu suchen, aber überall, wo ich aussehe, machen Leute das, indem sie entweder die eingebauten Listenmethoden importieren oder benutzen.
Hilfe sehr geschätzt! :)
Sie müssen Heapq im Grunde dafür implementieren. Nach dem Code zu urteilen, den Sie geschrieben haben, scheinen Sie keine Vertrautheit mit Haufen zu haben. Nachschlagen ["Binär-Heap"] (https://www.google.com/search?q=binary+heap&oq=binary+heap) und eines davon implementieren. – user2357112
Vielen Dank! :) Ich werde mich definitiv darum kümmern – Ikzturb
Es ist im Grunde eine Liste sortiert nach Priorität, überlege mit 'bisect.bisect_left() 'den Insert-Index zu berechnen und benutze dann' list.insert() '. – Nick