hustlzp 发表于 2019-1-15 10:34

【Python】【笔记】 数据结构:栈类的构造

# 定义一个栈(Stack)类,用于模拟一种具有后进先出(LIFO)特性的数据结构。
# 至少需要有以下方法:
# 方法名
#         isEmpty()
#                 判断当前栈是否为空(返回 True 或 False)
#         push()
#                 往栈的顶部压入一个数据项
#         pop()
#                 从栈顶弹出一个数据项(并在栈中删除)
#         top()
#                 显示当前栈顶的一个数据项
#         bottom()
#                 显示当前栈底的一个数据项

class Stack:
    def __init__(self,start = []):
      self.stack = []
      for x in start:
            self.push(x)
    def isEmpty(self):
      # if len(self.stack) == 0:
      #   return True
      # else:
      #   return False
      return not self.stack
    def push(self,x):
      self.stack.append(x)
    def pop(self,x):
      # self.stack.pop()
      if self.isEmpty():
            print('警告:栈为空!')
      else:
            return self.stack.pop()
    def top(self):
      if self.isEmpty():
            print('警告:栈为空!')
      else:
            return self.stack[-1]
    def bottom(self):
      if self.isEmpty():
            print('警告:栈为空!')
      else:
            return self.stack
    def print_stack(self,reversed = False):
      if reversed == False:
            print(self.stack)
      else :
            self.stack.reverse()
            print(self.stack)
            self.stack.reverse()
      # Python的list.reverse()方法,会直接在原来的列表里面将元素进行逆序排列,不需要创建新的副本用于存储结果。


祈祷者 发表于 2019-2-22 12:40

盯着你的头像看了好长时间      特码的1 {:1_908:}
页: [1]
查看完整版本: 【Python】【笔记】 数据结构:栈类的构造