Pythonで汎用スタックを作成するには? Pythonでの私のスタック実装:
class Node(object):
def __init__(self, d):
self.data = d
self.nextNode = None
class Stack(object):
def __init__(self):
self.top = None
def push(self, item):
newNode = Node(item)
newNode.nextNode = self.top
self.top = newNode
def pop(self):
if self.top == None:
return None
item = self.top.data
self.top = self.top.nextNode
return item
今、私は Node クラスのオブジェクトを配置していますが、そこに何でも配置できるようにジェネリック Stack を実装する方法を教えてください。たとえば、新しいタイプのノードを作成したい場合
class NodeWithMin:
def __init__(self, value, minval):
self.data = value
self.minval = minval
そして、これらのタイプのノードに基づいてスタックを作成できるため、次のようになります (もちろん機能しません)。
class StackWithMin(qs.Stack):
def push(self, val):
if self.peek() != None:
minval = min(self.peek().value, val)
else:
minval = val
qs.Stack.push(NodeWithMinV2(val, minval))
何か案が?
編集:次のエラーがあるため、機能しませんでした:
unbound method push() must be called with Stack instance as first argument (got NodeWithMinV2 instance instead)
私は逃したself