pythonはキューの基本操作を実現し、出隊、入隊、計算隊長
17322 ワード
キューはデータ構造でよく使われるタイプで、キューと同じように、先進的なキューの要素がデキューされるときは必ず先に出てきて、一端がキューヘッダ(キュー要素のデキューの一端)、他端がキューテール(キュー要素のデキューの一端)と定義されています.ループキューとは、キューの2つのポインタ(先頭と末尾のポインタを接続し、操作をより容易にすることができます)です.
シーケンスキュー操作:
キューの操作
シーケンスキュー操作:
class Queue(object):
#
def __init__(self):
self.__list = []
#
def pushqueue(self,item):
# ,
self.__list.append(item)
# ,
# self.__list.insert(0,item)
#
def putqueue(self):
return self.__list.pop(0)
# return self.__list.pop()
#
def is_empty(self):
return self.__list == []
#
def size(self):
return len(self.__list)
if __name__ == '__main__':
s = Queue()
s.pushqueue(1)
s.pushqueue(2)
s.pushqueue(3)
print(' ', s.size())
print(s.putqueue(),end=' ')
print(s.putqueue(),end=' ')
print(s.putqueue(),end=' ')
print(' ',s.size())
キューの操作
''' '''
class QueueNode(object):
#
def __init__(self):
self._queue = None
self._quenext = None
class DefineQueue(object):
#
def __init__(self):
self._queuehead = QueueNode()
#
tqueue = QueueNode()
# front rear
self._front = tqueue
self._rear = tqueue
#
def is_empty(self):
# front rear
if self._front == self._rear:
return True
else:
return False
#
def getlength(self):
#
if self.is_empty():
return
else:
#
quenode = self._front
#
count = 0
# , rear , +1,
quenode = self._front._quenext
while quenode != self._rear:
count += 1
quenode = quenode._quenext
count += 1
return count
#
def put(self, put_data):
#
que_data = QueueNode()
#
que_data._queue = put_data
# next
self._rear._quenext = que_data
#
self._rear = que_data
#
def push(self):
#
if self.is_empty():
return 'Error'
else:
#
putqueue = self._front._quenext
# next front next
self._front._quenext = putqueue._quenext
# , front rear
if self._rear == putqueue:
self._rear = self._front
#
return putqueue._queue
#
def getqueue(self):
#
if self.is_empty():
return
else:
# front.next
quenode =self._front._quenext
# front rear,
while quenode != self._rear:
#
print(quenode._queue,end=' ')
#
quenode = quenode._quenext
print(quenode._queue,end=' ')
if __name__ == '__main__':
node = DefineQueue()
for i in range(5):
node.put(i)
print(' :',end=' ')
node.getqueue()
print('
',node.getlength())
print(' :',node.push(),end=' ')