您当前的位置: 首页 >  数据结构

IT之一小佬

暂无认证

  • 2浏览

    0关注

    1192博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

数据结构之栈

IT之一小佬 发布时间:2021-04-14 11:09:15 ,浏览量:2

数据结构之栈

栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,他的特点在于只能允许在容器的一端(称为栈顶端指标,英语top)进行加入数据(英语push)和输出数据(英语pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。

由于栈数据结构只允许在一端进行操作,因而按照**后进先出(LIFO,Last in First Out)**的原理运作。

栈的实现
class Stack(object):
    """栈 先进后出"""

    def __init__(self):
        self.__list = list()

    def push(self, item):
        """进栈"""
        self.__list.append(item)

    def pop(self):
        """出栈"""
        if self.__list:
            return self.__list.pop()
        else:
            return None

    def peek(self):
        """返回栈顶元素"""
        if self.__list:
            return self.__list[-1]
        else:
            return None

    def length(self):
        """返回栈的长度"""
        return len(self.__list)

    def is_empty(self):
        """判断栈是否为空"""
        return self.__list == []


if __name__ == '__main__':
    s = Stack()
    s.push(1)
    s.push(2)
    s.push(3)
    print(s.is_empty())
    print(s.length())
    print(s.peek())
    print(s.pop())
    print(s.peek())
    print('*' * 30)
    s.push(5)
    print(s.length())
    print(s.peek())
    print(s.pop())
    print(s.pop())
    print(s.pop())
    print(s.is_empty())
    print(s.length())

运行结果:

关注
打赏
1665675218
查看更多评论
立即登录/注册

微信扫码登录

0.0500s