1. 队列
特点: 先进先出
名字: Queue
使用实例
import queue
# test1 先进先出队列
q1 = queue.Queue()
q1.put("one")
q1.put("two")
q1.put("three")
q1.put("four")
q1.put("five")
while not q1.empty():
print(q1.get())
# test2 先进后出队列
q2 = queue.LifoQueue()
for i in range(3):
q2.put(i)
while not q2.empty():
print(q2.get())
使用结果如下:
2. 栈
特点:先进后出
名字: Stack
使用实例
class Node(object):
def __init__(self, data, next = None):
self.data = data
self.next = next
class Stack(object):
def __init__(self, len=0, top = None):
self.len=len
self.top = top
#创建新的节点放到栈顶
def push(self,data):
self.top = Node(data, self.top)
self.len += 1
#拿出栈顶元素,原来的栈发生改变
def pop(self):
if self.top is None:
return None
data = self.top.data
self.top = self.top.next
self.len -= 1
return data
#获取栈元素个数
def length(self):
return self.len
#查看栈顶元素,原来的栈不变
def peek(self):
return self.top.data if self.top is not None else None
def isEmpty(self):
return self.peek() is None
if __name__ == "__main__":
stack = Stack()
for i in range(5):
stack.push(i)
while not stack.isEmpty():
print (stack.peek()) #获取栈顶元素
print("size:" + str(stack.length())) #获取栈元素个数
stack.pop() #出栈
使用结果如下: