栈+队列

特性:先进后出的数据结构
栈顶,栈尾
应用:每个浏览器都有一个返回按钮,当你浏览网页被放置在一个栈中(实际上是网页的地址),你现在查看的网页在顶部,你第一个查看的网页在底部,如果按返回按钮,将按相反的顺序浏览刚才的页面。
  • Stack() 创建一个空的新栈,它不需要参数,并返回一个空栈。
  • push(item)将一个新项添加到栈的顶部,它不需要item做参数并不返回任何内容。
  • pop()从栈中删除顶部项。它不需要参数并返回item。栈被修改。
  • peek()从栈返回顶部项,但不会删除它。不需要参数,不修改栈。
  • isEmpty()测试栈是否为空,不需要参数,并返回布尔值。
  • size()返回栈中的item数量,不需要参数,并返回一个整数
class Stack():
    def __init__(self):
        self.items = []
    def push(self,item):
        self.items.append(item)
    def pop(self):
        return self.items.pop()
    def peek(self):
        return len(self.items) - 1
    def isEmpty(self):
        return self.items == []
    def size(self):
        return len(self.items)

stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)

print('栈顶元素下标:',stack.peek())
print(stack.isEmpty())
print('元素个数:',stack.size())
print(stack.pop())
print(stack.pop())
print(stack.pop())

输出:
在这里插入图片描述

队列

先进先出
  • Queue()创建一个空的新队列,它不需要参数,并返回一个空队列。
  • enqueue(item)将新项添加到队尾,它需要item作为参数,并不返回任何内容。
  • dequeue()从队首移除项,它不需要参数并返回item,队列被修改。
  • isEmpty()查看队列是否为空,它不需要参数,并返回布尔值。
  • size()返回队列中的项数,它不要参数,并返回一个整数。
class Queue():
    def __init__(self):
        self.items =[]
    def enqueue(self,item):
        self.items.insert(0,item)
    def dequeue(self):
        return self.items.pop()
    def isEmpty(self):
        return self.items == []
    def size(self):
        return len(self.items)

q = Queue()
q.enqueue(1)
q.enqueue(2)
q.enqueue(3)
print(q.dequeue())
print(q.dequeue())
print(q.dequeue())

在这里插入图片描述
在这里插入图片描述

class Queue():
    def __init__(self):
        self.items =[]
    def enqueue(self,item):
        self.items.insert(0,item)
    def dequeue(self):
        return self.items.pop()
    def isEmpty(self):
        return self.items == []
    def size(self):
        return len(self.items)

kids = ['A','B','C','D','E','F']
queue = Queue()
for kid in kids:
    queue.enqueue(kid)
while queue.size() > 1:
    for i in range(6):
        kid = queue.dequeue()
        queue.enqueue(kid)
    queue.dequeue()

print("获胜的选手是:",queue.dequeue())

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值