Fork me on GitHub

一、什么是栈

  栈是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许允许在容器的一端进行计入和输出元素。由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。

 

 栈结构可以使用顺序表实现,也可以使用链表来实现,只需要按照栈的特点来实现即可。

二、栈结构的实现

class Stack:

    def __init__(self):
        """使用顺序表结构存储数据"""
        self._list = []

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

    def push(self, item):
        """添加元素,从尾部加元素,再从尾部取元素,复杂度为O(1)"""
        self._list.append(item)

    def pop(self):
        """取出元素"""
        return self._list.pop()

    def peek(self):
        """返回栈顶元素"""
        return self._list[len(self._list) - 1]

    def size(self):
        """返回栈的大小"""
        return len(self._list)

栈没有规定那一端必须作为操作的位置,只需要保证压栈和出栈都是同一端即可,比如:使用append进行尾部压栈操作,然后使用pop进行尾部出栈操作。

 

posted @ 2021-02-28 11:03  iveBoy  阅读(92)  评论(0编辑  收藏  举报
TOP