python实现栈的基本操作

1.栈:一种特殊的线性表,其实只允许在固定的一端进行插入或删除操作。进行数据插入和删除的一端称为栈顶,另一端称为栈底。不含任何元素的栈称为空栈,栈又称为后进先出的线性表。

特性栈:后进先出(LILO)特殊线性表
栈功能:将数据从一种序列改变为另一种序列

2.顺序栈和顺序表数据成员相同,不同之处:顺序栈的入栈和出栈操作只允许对当前栈顶进行操作

顺序栈所有的的操作时间复杂度为O(1)
注意:面试中如果需要用到栈,封装静态栈。

3.栈结构实现
栈可以用顺序表实现,也可以用链表实现。

4.栈的操作
Stack() 创建一个新的空栈
push(item) 添加一个新的元素item到栈顶
pop() 弹出栈顶元素
peek() 返回栈顶元素
is_empty() 判断栈是否为空
size() 返回栈的元素个数

class Stack(object):
  """"""
  def __init__(self):
    self.items = []

  def is_empty(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)

if __name__ == "__main__":
stack = Stack()
stack.push("hello")
stack.push("world")
stack.push("itcast")
print stack.size()
print stack.peek()
print stack.pop()
print stack.pop()
print stack.pop()
原文地址:https://www.cnblogs.com/Jesee/p/13070681.html