栈
后进者先出,先进者后出,这就是典型的“栈”结构。
栈的操作
Stack() 创建一个新的空栈
push(item) 添加一个新的元素item到栈顶
pop() 弹出栈顶元素
peek() 返回栈顶元素
is_empty() 判断栈是否为空
size() 返回栈的元素个数
class stack(object):
def __init__(self):
self.item = []
def is_empty(self):
'''判断栈是否为空'''
return self.item == []
def push(self, item):
'''入栈'''
self.item.append(item)
def travel(self):
'''遍历栈元素并打印'''
print(self.item)
def pop(self):
'''出栈'''
return self.item.pop()
def peek(self):
'''返回栈顶元素'''
if self.is_empty():
return None
else:
return self.item[-1]
def size(self):
'''打印栈元素的个数'''
print(len(self.item))
s = stack()
print(s.is_empty())
s.push(0)
s.push(2)
s.push(5)
s.push(1)
s.pop()
s.travel()
print(s.peek())
s.size()
# True
# [0, 2, 5]
# 5
# 3
栈的应用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jk7StrTo-1574007113175)(02500A0353B34FEDAF6680D5AC40C2B8)]
浏览器的前进、后退功能,我想你肯定很熟悉吧?
当你依次访问完一串页面 a-b-c 之后,点击浏览器的后退按钮,就可以查看之前浏览过的页面 b 和 a。当你后退到页面 a,点击前进按钮,就可以重新查看页面 b 和 c。但是,如果你后退到页面 b 后,点击了新的页面 d,那就无法再通过前进、后退功能查看页面 c 了
队列
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZMreDaYd-1574007113176)(76320119DF1B47DAAAADFBDD1F12ED0D)]
作为一种非常基础的数据结构,队列的应用也非常广泛,特别是一些具有某些额外特性的队列,比如循环队列、阻塞队列、并发队列。它们在很多偏底层系统、框架、中间件的开发中,起着关键性的作用。
队列的实现
Queue() 创建一个空的队列
enqueue(item) 往队列中添加一个item元素
dequeue() 从队列头部删除一个元素
is_empty() 判断一个队列是否为空
size() 返回队列的大小
内容加载中...
内容加载中...
内容加载中...