码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构-栈

时间:2020-01-01 18:52:19      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:__name__   erro   als   indexer   init   不能   obj   col   tac   

栈是一种后进先出的数据结构 ,栈满时不能入栈,栈空时不能出栈。

python代码实现:

class Stack(object):
    def __init__(self, limit=10):
        self.stack = [] #存放元素
        self.limit = limit #栈容量极限
    def push(self, data): #入栈
        if len(self.stack) >= self.limit:
            print(StackOverflowError)
        self.stack.append(data)
    def pop(self):#出栈
        if self.stack:
            return self.stack.pop()
        else:
            raise IndexError(pop from an empty stack) #空栈不能被弹出
    def peek(self): #查看堆栈的最上面的元素
        if self.stack:
            return self.stack[-1]
    def is_empty(self): #判断栈是否为空
        return not bool(self.stack)
    def size(self): #返回栈的大小
        return len(self.stack)
if __name__ =="__main__":
    stack=Stack()
    print(stack.is_empty())#True
    print(stack.size())#0
    stack.push([1])
    stack.push([3])
    stack.push([2])
    print(stack.peek())#[2]
    print(stack.is_empty())#False
    print(stack.size())#3
    print(stack.pop())#[2]
    print(stack.peek())# [3]
True
0
[2]
False
3
[2]
[3]

数据结构-栈

标签:__name__   erro   als   indexer   init   不能   obj   col   tac   

原文地址:https://www.cnblogs.com/pfeiliu/p/12129262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!