pyhon数据结构:栈Stack

1.栈Stack

# 1.说明[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6QVbrjJD-1584151488205)(attachment:image.png)]

2.Stack操作样例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zhI3Us0n-1584151462730)(attachment:image.png)]

3.Stack的两端对应list设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r1JVqUwj-1584151462732)(attachment:image.png)]

4.实现:尾端作为栈顶,插入或删除,其push/pop的时间复杂度为O(1)

class Stack:
    #初始化
    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()
s._init_()
print(s.isEmpty())
s.push(4)
s.push('dog')
print(s.peek())
s.push(False)
print(s.size())
s.push(8.4)
print(s.pop())
print(s.pop())
print(s.size())
        
True
dog
3
8.4
False
2

3.另一个实现:首端作为栈底进行删增,其push/pop的时间复杂度为O(n)

class Stack(object):
    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)  
发布了51 篇原创文章 · 获赞 34 · 访问量 918

猜你喜欢

转载自blog.csdn.net/weixin_43412569/article/details/104855442