首页 > 编程语言 >Python实现顺序栈

Python实现顺序栈

时间:2023-11-13 20:33:29浏览次数:38  
标签:__ 顺序 Python self top pop 实现 push stack

顺序栈的基本模型

完整代码

点击查看代码
#! /usr/bin/env python3

class Stack:
    # stack: initiate, is_empty, is_full, push and pop 
    def __init__(self, maxsize):
        self.data = [0 for i in range(maxsize)]
        self.top = -1
        self.maxsize = maxsize

    def is_empty(self):
        return self.top == -1

    def is_full(self):
        return self.top == self.maxsize - 1

    def push(self, element):
        if self.is_full():
            print("Ths stack is full!")
            return False
        else:
            self.top += 1
            self.data[self.top] = element
            return True

    def pop(self):
        if self.is_empty():
            print("The stack is empyt!")
            return -9999
        else:
            popped_value = self.data[self.top]
            self.top -= 1
            return popped_value


def main():
    # use while loop to perform push and pop operation
    stack = Stack(int(input("input maxsize: ")))
    while True:
        message = input("push/pop/exit: ")
        if message == 'exit':
            break
        elif message == 'push':
            stack.push(int(input("Value Pushed: ")))        
        elif message == 'pop':
            print("Poped Value:", stack.pop())
        else:
            print("Plese input 'push', 'pop' or 'exit'")
            
        print(f"stack.data = {stack.data}")
        print(f"stack.top = {stack.top}")

if __name__ == '__main__':
    main()

标签:__,顺序,Python,self,top,pop,实现,push,stack
From: https://www.cnblogs.com/gjsun/p/17830099.html

相关文章

  • 面试必刷TOP101:27、按之字形顺序打印二叉树
    题目题解importjava.util.*;/**publicclassTreeNode{*intval=0;*TreeNodeleft=null;*TreeNoderight=null;*publicTreeNode(intval){*this.val=val;*}*}*/publicclassSolution{/***代码中的类名、方......
  • 如何在 Python 中执行 MySQL 结果限制和分页查询
    PythonMySQL限制结果限制结果数量示例1:获取您自己的Python服务器选择"customers"表中的前5条记录:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="您的用户名",password="您的密码",database="我的数据库"......
  • 如何在 Python 中执行 MySQL 结果限制和分页查询
    PythonMySQL限制结果限制结果数量示例1:获取您自己的Python服务器选择"customers"表中的前5条记录:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="您的用户名",password="您的密码",database="我的数据库"......
  • 网银转账虚拟生成器在线制作,工商农业邮政建设招商,标签+对话框+画板+快照实现
    标签+对话框+画板+快照实现就实现了一个虚拟截图生成器,当然我加了水印了,这个图片你根本盗用不了,图片模版的话网上真的太多了,我这个也是网上找的,自己百度图库搜一下,然后标签记得一定用黑月的透明标签,如果不透明的话颜色看起来会有失真的感觉,图片有点灰白,而易语言默认标签是纯白的,直......
  • 用python计算圆周率PI,并显示进度条
    用python计算圆周率PI‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬描述用python计算圆周率PI‪‬‪‬......
  • python tqdm 进度条 结合对象集合
    包含1.单独数据的进度条2.复杂对象集合的进度条3.结合excel读取以及业务操作做到全局进度条 fromtqdmimporttqdmimporttimefromopenpyxlimportWorkbook,load_workbook#集合类型的进度条deflist_tqdm():#生成随机数data=list()forii......
  • 使用 npm config set script-shell 实现跨平台的脚本执行需求
    npmconfigsetscript-shellC:\\app\\Git20180223\\bin\\bash.exe这个命令的准确含义是设置npm的脚本(shell)执行环境为"C:\app\Git20180223\bin\bash.exe"。这个命令用于修改npm的配置,具体来说,它修改了npm的一个配置项,该配置项用于指定在执行npm脚本时使用的shell程序。在这个......
  • Python_Mooc_Stu_23_11_13_String_Random
    目录一、序列 (一)序列的索引 1.索引编号 2.序列元素索引访问3.注意事项 (二)序列的切片 1.切片格式 2.切片使用 3.参数缺省 二、序列的运算和常用处理函数 (一)序列运算 1.序列相加 2.序列相乘 3.序列对象比较 4.成员资格检查 (二)常用处理函数 1.len()......
  • SSH高级应用之远程端口转发并实现网关功能
    端口转发实现逻辑我们直接来看这图好,那么现在呢?你假设你是出差在外的用户,比方说有一个笔记本用户出差了。明白了好。现在是这样的,这个服务器呢?是在你企业内部的。那么,企业内部要想。让互联网的用户想访问,通常来讲是访问不了的,因为什么有防火墙?他会阻止你访问企业内部的服务器,所以......
  • Object.defineProperty(obj,key,val)不可以监听数组变化,需要做特殊处理,所以Vue3.0使用
    关于Vue双向数据绑定说法错误的是()AVue实现双向数据绑定是采用数据劫持和发布者-订阅者模式BObject.defineProperty(obj,key,val)可以监听数组变化,不需要做特殊处理CVue2.0数据劫持是利用ES5的Object.defineProperty(obj,key,val)方法来劫持每个属性的getter和setterD......