C/C++教程

数据结构与算法 2.栈 Stack

本文主要是介绍数据结构与算法 2.栈 Stack,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

栈 Stack

栈是一种特殊的线性表,只能在一端进行操作
往栈中添加元素的操作,叫做入栈,push
往栈中移除元素的操作,叫做出栈,pop,只能移除栈顶元素,也叫弹出栈顶元素
FILO的结构 First In Last Out

栈的接口设计:
    isEmpty()    判断栈是否为空
    size()       返回栈中元素数量
    push()       入栈
    pop()        出栈
    peek()       获取栈顶元素

栈的应用:
    浏览器的前进和后退:使用两个栈,一个用来存放当前访问及其之前的网址,一个用来存放当前访问之后的网址
    软件的撤销(Undo)和恢复(Redo)
class Stack(object):
    def __init__(self):
        self.items = []

    # 判断栈是否为空
    def isEmpty(self):
        return self.items == []

    # 获取栈的长度
    def size(self):
        return len(self.items)

    # 入栈
    def push(self,item):
        self.items.append(item)

    # 出栈
    def pop(self):
        return self.items.pop()

    # 获取栈顶元素
    def peek(self):
        return self.items[self.size() - 1]

if __name__ == '__main__' :
    stack = Stack()
    stack.push(11)
    stack.push(22)
    stack.push(33)
    stack.push(44)
    res = stack.peek()
    print(res)
    while stack.isEmpty() == False :
        res = stack.pop()
        print(res)

44
44
33
22
11
这篇关于数据结构与算法 2.栈 Stack的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!