ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

数据结构与算法 2.栈 Stack

2021-10-30 02:31:24  阅读:115  来源: 互联网

标签:__ items self Stack 算法 push 数据结构 stack def


栈 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

标签:__,items,self,Stack,算法,push,数据结构,stack,def
来源: https://www.cnblogs.com/HyeJeong/p/15484182.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有