当前位置:   article > 正文

【Python数据结构与算法】线性结构小结_python 顺序栈的时间复杂度和空间复杂度(1)_顺序栈的空间复杂度

顺序栈的空间复杂度

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!


img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

栈的两种实现

1.左为栈顶,时间复杂度为O(n)

2.右为栈顶,时间复杂度O(1)

2.队列Queue

3.双端队列Deque

4.列表List

5.链表

a.无序链表的实现

b.有序链表的实现


线性数据结构Linear DS

作用:将数据项以某种线性的次序组织起来

1.栈Stack

栈Stack维持了数据项后进先出LIFO的次序
stack的基本操作包括push,pop,isEmpty

栈的两种实现
1.左为栈顶,时间复杂度为O(n)
#左边为顶,右边为低
class Stack:
    def __init__(self):
        self.items = []
 
    def isEmpty(self):
        return self.items == []
 
    def push(self,item):
        self.items.insert(0,item)
 
    def pop(self):
        return self.items.pop(0)
 
    def peek(self):
        return self.items[0]
 
    def size(self):
        return len(self.items)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
2.右为栈顶,时间复杂度O(1)
# 左边为低,右边为顶--->更高效
class Stack:#Stack---->ADT
    def __init__(self):
        self.items =[]
 
    def isEmpty(self):
        return self.items == []
 
# 满足这些属性(行为)的是栈
    def push(self,item):
        self.items.append(item)
 
    def pop(self):
        return self.items.pop()
 
    def peek(self):
        return self.items[len(self.items)-1]
 
    #
    def size(self):
        return len(self.items)
 
s = Stack()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

链接

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/900694
推荐阅读
相关标签