pythonキューの実装
10968 ワード
Pythonを使用してキュー1を実現する.リストで
2.双方向チェーンで
class Queue:
def __init__(self):
self.li = []
def enqueue(self,x):
self.li.append(x)
def __str__(self):
return str(self.li)
def dequeue(self):
self.li.pop(0)
if __name__ == '__main__':
q = Queue()
q.enqueue(1)
q.enqueue(2)
q.enqueue(3)
q.enqueue(4)
q.enqueue(5)
q.dequeue()
q.dequeue()
print(q)
2.双方向チェーンで
class Node:
def __init__(self,val):
self.val = val
self.next = None
self.pre = None
class DoubleLink:
def __init__(self):
self.head = Node(None)
self.tail = Node(None)
self.head.next = self.tail
self.tail.pre = self.head
class Queue1:
def __init__(self):
self.link = DoubleLink()
def enqueue(self,x):
node = Node(x)
pre = self.link.tail.pre
pre.next = node
node.pre = pre
node.next = self.link.tail
self.link.tail.pre = node
def dequeue(self):
after = self.link.head.next.next
self.link.head.next = after
after.pre = self.link.head
def __str__(self):
l1 = []
h = self.link.head.next
t = self.link.tail
while h is not t:
l1.append(h.val)
h = h.next
return str(l1)
if __name__ == '__main__':
q = Queue1()
q.enqueue(1)
q.enqueue(2)
q.enqueue(3)
q.enqueue(4)
q.enqueue(5)
q.dequeue()
q.dequeue()
print(q)