当前位置: 首页 > article >正文

【Python】利用函数模拟创建【栈】的数据结构操作

知识解读:来自:https://fishc.com.cn
[=#FwSB,M 9xKOA!^6fP)_EC(ns`d
什么是栈呢?Powered by https://fishc.com.cn
3>A?5JXL#_`}YBGD"FWdubKeyhQ'P
栈是一种具有 FILO 特性的数据结构,即先放入的数据反而后取出。e&"%'
b0ql5{)2SORTV^[#~<NXtdZ|QM%
比如有依次放入数据 250、251、255 到栈中,那么它们在栈中的存储结构如下:|pPCTFOS
"1qKL}>@=HZ`ksicJtSYU[RV
255
251
250
D#08_S~}kO;FJum"$=[M7?!)`x<
此时,执行取出命令(pop),应该将最后压入栈的 255 优先取出,取出后栈中内容如下:FR+25o}
?gCiEU_Tx%kz"#l|0L;Q
251
250
WAYSD6'aE7j5,9|bI}B0
同样道理,如果我们执行压栈命令(push),将数据 520 压入栈中,那么执行后,栈中内容如下: E-mJ?cF=P
m$WEgfOM!Nk&_Ts}0QBD ,v1K[
520
251
250
]Y&*S;Ul0#5u"ZrgjT+1XBGF
题目要求:将压栈命令(push)、取出命令(pop)和打印栈的功能分别封装为独立的函数。

 

def print_s(s):

    print("栈:")

    for each in s[::-1]:

        print(each)



def push_s(s, v):

    s.append(v)



def pop_s(s):

    if len(s) == 0:

        return 0

    else:

        return s.pop()



s = []

ins = ""



while ins != "exit":

    ins = input("请输入指令(push/pop/top/exit):")

    if ins == "push":

        v = input("请输入将要压入栈中的值:")

        push_s(s, v)

        print_s(s)

    if ins == "pop":

        v = pop_s(s)

        if v == 0:

            print("栈已空~")

        else:

            print(v)

            print_s(s)

    if ins == "top":

        if len(s) == 0:

            print("栈已空~")

        else:

            print(s[-1])

http://www.kler.cn/a/447376.html

相关文章:

  • MFC/C++学习系列之简单记录6
  • Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版)
  • Pytorch | 利用NI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击
  • go-zero负载均衡实现原理
  • 重拾设计模式--模板方法模式
  • 书生·浦语大模型全链路开源体系-第6关 OpenCompass 评测
  • 苹果手机怎么清理空间:拯救你的拥挤手机
  • MyBatis主键自增回填功能源码分析
  • Redis List操作
  • Docker容器命令
  • clickhouse-副本和分片
  • StarRocks:存算一体模式部署
  • maui开发成生安卓apk,运行提示该应用与此设备的CPU不兼容
  • Spring Boot + Dubbo 的整合 ,仅需六步
  • Redis 初相识:开启缓存世界大门
  • 四川XX信息技术职业学院教案
  • react概念篇
  • 巧用AI显著提升工作和学习的效率和质量
  • 【heapdump敏感信息提取】JDumpSpider v1.1
  • 电子电气架构 --- 队列刷写场景及刷写上位机浅析