三十九、python-出栈入栈和列表的封装

三十九、python-出栈和列表

39.1 出栈入栈–stack

  • 栈:先进后出

  • pop(出栈)push(入栈)

  • len(获取栈的长度)

  • is_empty(判断栈是否为空)

  • top(栈顶)

  • 代码

class stack (object):  # 定义类
    def __init__(self):  # 定义栈首先为空
        self.stack=[]
    def is_empty(self):  #判断栈是否为空
        return self.stack==[]
    def push (self,item):  # 入栈
        self.stack.append(item)
        print("Success %s"%(item))
    def pop(self):   # 出栈
        if self.is_empty():   # 先判断是否为空栈
            raise Exception("Empty stack")
        else:  #不为空的话直接出栈
            item=self.stack.pop()
            print("The elements out of the stack are %s" %(item))
    def top(self):  # 输出栈顶
        if self.is_emply():
            raise Exception("Empty stack. NO item")
        else:
            return self.stack[-1]  
    def __len__(self): #新的魔术方法:当执行len(s)时会自动执行该魔术方法
        return len(self.stack)


s=stack() 
for item in range(5):
    s.push(item)

for item in range(2):
    s.pop()

print("The stack's lenge is ",len (s))
print("Empty?",s.is_empty())

  • 练习

39.2 列表—queue

  • 列表:先进先出
  • pop(出列)push(入列)
  • len(获取列表的长度)
  • is_empty(判断列表是否为空)
  • get_first(栈顶)
  • 代码
class queue (object):  # 定义类
    def __init__(self):  # 定义栈首先为空
        self.queue=[]
    def is_empty(self):  #判断栈是否为空
        return self.queue==[]
    def push (self,item):  # 入栈
        self.queue.append(item)
        print("Success %s"%(item))
    def pop(self):   # 出栈
        if self.is_empty():   # 先判断是否为空栈
            raise Exception("Empty stack")
        else:  #不为空的话直接出栈
            item=self.queue.pop(0)
            print("The elements out of the stack are %s" %(item))
    def get_first(self):  # 输出栈顶
        if self.is_emply():
            raise Exception("Empty stack. NO item")
        else:
            return self.queue[0]  
    def __len__(self): #新的魔术方法:当执行len(s)时会自动执行该魔术方法
        return len(self.queue)


s=stack() 
for item in range(5):
    s.push(item)

for item in range(2):
    s.pop()

print("The queue's lenge is ",len (s))
print("Empty?",s.is_empty())

  • 练习
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值