首页 > 其他分享 >栈

时间:2023-05-25 16:45:40浏览次数:17  
标签: __ 元素 顶端 atexit 移除 print

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

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

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

最新添加的元素最先被移除: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也存放在一个栈中,当前访问的网页位于栈的顶端,最早访问的网页位于底端,点击返回按钮,则开始反向浏览

 

python实现栈

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

列表的尾部作为栈的顶端

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

列表的头部作为栈的顶端

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

 

标签:,__,元素,顶端,atexit,移除,print
From: https://www.cnblogs.com/shixiaogu/p/17431787.html

相关文章