Python数据结构第三章第一节--初识栈和队列

 栈:像叠盘子一样,后进先出(Last in First out:简称:LIFO)

队列:像排队打饭一样,先进先出(First in First out, 简称:FIFO)

琐碎知识点:

1.栈:Stack

2. 队列:Queue

3.pop:弹出,通俗讲就是栈的删除操作

4.push:压入,通俗讲就是栈的插入操作

5.栈顶:Stack_Top

6.栈底:Stack_Base

课堂代码实现:

max_size = 100  #先设定最大尺寸

class Sqstack:  # 定义一个类
    def __init__(self):  # 初始化函数
        self.elem = [None] * max_size  # 设定elem的元素总数
        self.top = 0  # 设定空栈
        self.base = 0  # 设定空栈
        self.stack_size = max_size  # 初始化栈的总元素大小

    def push(self, e):  # 定义压入函数
        if self.top - self.base == self.stack_size:  # 判断栈是否满
            raise Exception("栈满")  # 返回栈满提示
        self.elem[self.top] = e # 反之,压入
        self.top += 1 # top , 然后栈顶加1

    def pop(self):  #定义弹出函数
        if self.top == self.base:  # 判断是否为空栈
            raise Exception("栈空")  # 返回栈空提示
        self.top -= 1 # 反之, 栈顶减1
        return self.elem[self.top] 返回栈顶元素

    def get_top(self):  # 定义一个得到栈顶的函数
        if self.top == self.base:  # 如果栈顶等于栈底
            raise Exception("栈空") # 如果栈为空,则返回“栈空”提示语
        return self.elem[self.top-1]  # 返回最顶层元素
    def stack_empty(self): # 定义空栈函数
        return self.top == self.base # 返回栈顶等于栈底
    def __len__(self): # 定义计算栈元素个数的函数
        return self.top - self.base # 计算方法

    def allprint(self):  #定义栈全部元素打印的函数
        print(str(self.elem[: self.top]))  # 计算方法

if __name__ == "__main__":  # 一个可以让其他文件调用此文件时,下方的全部内容不会被执行的好帮手
    s = Sqstack() # 调用初始化函数

    s.push(2) # 调用压入函数压入空栈元素
    s.push(3) # 同
    s.push(4) # 同 
    s.allprint() # 同
    print(len(s))  # 打印此栈的长度
    print("pop", s.pop())  # 打印并调用弹出函数,删除最末尾的那个元素
    print(len(s))  # 打印现有的栈内元素的个数
    s.allprint() # 调用打印函数并执行

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值