在实现栈之前,先了解下线性数据结构

  一般而言,有序的数据集合,其元素的顺序取决于添加和移除顺序,一旦某个元素被添加进来,与其左右元素相对位置保持不变,这样的数据集合,被称为线性数据结构

添加、移除操作总是发生在同一端——顶端,另一端则是底端

1、最新添加的元素最先被移除-排序原则:LIFO(后进先出)

 在python中,有一个库用于注册退出函数的,可用他实现栈

复制代码
 1 import atexit
 2 
 3 
 4 def a():
 5     print("1")
 6 
 7 
 8 def b():
 9     print("2")
10 
11 
12 def c():
13     print("3")
14 
15 
16 if __name__ == '__main__':
17     """
18     体现了栈
19     的反转特性
20     """
21     atexit.register(a)
22     atexit.register(b)
23     atexit.register(c)
复制代码

output:

  3

  2

  1

网站中连续页面的访问,其url也存放在一个栈中,当前访问的网页位于栈的顶端,最早访问的网页位于底端,点击返回按钮,则开始反向浏览

 

2、python实现栈

结合列表也可以实现栈,只要确定列表的头部还是尾部作为顶端即可,头部和尾部两种情况对应不同的运行情况(时间复杂度不同)

  2.1、列表的尾部作为栈的顶端

    无论元素多少,时间恒定都是:O(1)

  2.2、列表的头部作为栈的顶端

    随着元素的增多,会越来越慢。时间复杂度为O(n)

  2.3、具体实现代码后续给出

 

posted on   默玖  阅读(17)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示