队列
1、特点是先进先出(采用单链表存储方式)
2、操作
enqueue(data) 往队列中添加一个data数据
dequeue() 从队列头部删除一个数据
is_empty() 判断一个队列是否为空
size() 返回队列的大小
"""
采用列表方式存储
"""
class Queue(object):
def __init__(self):
self.__list = []
def enqueue(self, data):
"""往队列中添加一个数据"""
self.__list.append(data)
def dequeue(self):
"""从队列头部删除一个数据"""
return self.__list.pop(0)
"""
也可以从列表头部进行数据添加,列表尾部进行数据删除
添加:self.__list.insert(0, data)
删除:self.__list.pop()
"""
def is_empty(self):
"""判断一个队列是否为空"""
return not self.__list
def size(self):
"""返回队列的大小"""
return len(self.__list)
if __name__ == '__main__':
q = Queue()
q.enqueue("aaa")
q.enqueue("bbb")
q.enqueue("ccc")
print(q.size())
print(q.dequeue())
print(q.dequeue())
print(q.dequeue())
print(q.size())
执行结果
3
aaa
bbb
ccc
0
"""
采用单链表存储方式
"""
import SingleLinkList
class Queue(object):
def __init__(self):
self.__sll = SingleLinkList()
def enqueue(self, data):
"""往队列中添加一个数据"""
self.__sll.append(data)
def dequeue(self):
"""从队列头部删除一个数据"""
data = self.__sll.index(0)
if data:
self.__sll.remove(data)
return data
def is_empty(self):
"""判断一个队列是否为空"""
return not self.__sll.is_empty()
def size(self):
"""返回队列的大小"""
return self.__sll.length()
if __name__ == '__main__':
q = Queue()
q.enqueue("aaa")
q.enqueue("bbb")
q.enqueue("ccc")
print(q.size())
print(q.dequeue())
print(q.dequeue())
print(q.dequeue())
print(q.size())
执行结果
3
aaa
bbb
ccc
0