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

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

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

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 2023-05-25 16:38  默玖  阅读(11)  评论(0编辑  收藏  举报

导航