使用列表模拟队列和栈
类似 .insert()
和 .pop()
方法:pandas之dataframe移动复制删除列
# -*- coding: utf-8 -*-
"""
Created on Wed Jul 25 19:35:41 2018
@author: Administrator
"""
# 队列:先进先出,在一端进行插入,在另外一端进行删除
# 栈:先进后出,同一端插入和取出
# 使用list来模拟队列:
# 1)如何创建队列
# 2)在队列中增加一个元素
# 3)在队列的尾部删除一个元素
# 4)判断队列是不是为空
# 5)计算队列的长度
class listQueue(object):
def __init__(self):
self.item = []
# 在列表的头位置增加元素
def inqueue(self,i):
return self.item.insert(0,i) # 每次都在index=0的位置插入
# 在列表的尾部删除元素
def outqueue(self):
# return self.item.pop(0) # .pop(0) 栈 先进后出
return self.item.pop() # .pop() 队列 先进先出
def is_empty(self):
return self.item == [] # 与空列表==判断
def size(self):
return len(self.item)
L = listQueue()
print(L.is_empty())
L.inqueue("today")
L.inqueue('is')
L.inqueue('Monday')
print(L.is_empty())
print(L.item)
print(L.outqueue())
'''
.pop(): # queue
True
False
['Monday', 'is', 'today']
today # 先进先出
.pop(0) # 栈
True
False
['Monday', 'is', 'today']
Monday # 先进后出
'''