これはこれまでのところ私の最初の質問です。したがって、書式設定などが少し難しいかもしれません。私を嫌いしないでください:)組み込み関数を使用せずに優先度キューを実装するにはどうすればよいですか?
それでは、私がやっていることはPQUEUEというクラスを作っていると私は既に持っていることは次のとおりです。
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
私はあなたのように(プライオリティキュークラスを作成しようとしていますheapq/queueクラスやビルトインのリストメソッドを使用せずに参照できます)。
私が理解できないことは、これをどうやって進めるかです。私はどこでもオンラインで検索しようとしましたが、どこにいても、組み込みのリストメソッドをインポートしたり使用したりしている人が見ています。
非常に感謝します! :)
基本的には、heapqを自分で実装する必要があります。あなたが書いたコードで判断すると、ヒープに慣れていないようです。 ["binary heap"](https://www.google.com/search?q=binary+heap&oq=binary+heap)を検索し、そのうちの1つを実装します。 – user2357112
ありがとうございました! :)私は間違いなくそれを調べます – Ikzturb
基本的に優先順位でソートされたリストです.bisect.bisect_left()を使って挿入インデックスを計算してから、 'list.insert()'を使ってください。 – Nick