欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

栈+队列

程序员文章站 2022-06-01 08:36:16
...

特性:先进后出的数据结构

栈顶,栈尾

应用:每个浏览器都有一个返回按钮,当你浏览网页被放置在一个栈中(实际上是网页的地址),你现在查看的网页在顶部,你第一个查看的网页在底部,如果按返回按钮,将按相反的顺序浏览刚才的页面。

  • 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())

栈+队列

相关标签: 数据结构