2.1 顺序栈

1. 数据结构 —— 栈 Stack

栈: 是只允许在一端进行插入或删除的线性表

栈顶(Top):线性表允许进行插入删除的那一端。

栈底(Bottom):固定的,不允许进行插入和删除的另一端。

空栈:不含任何元素的空表。

栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构

2.两种常用类型的栈

2.1 顺序栈

顺序栈使用空间中地址连续的数组实现

2.2 链式栈

 顺序栈使用next指针实现邻接关系

3. 顺序栈实现

top定义:下标最大元素的下标,如果是空栈则定义top=-1

顺序栈需要申请一块地址,top不能超过StackSize-1


class SeqStack:
    def __init__(self,StackSize=100):
        self.StackSize=StackSize
        self.top=-1
        #top定义为下标最大元素的下标
        self.data=[None]*self.StackSize

    def Push(self,x):
        if self.top>=self.StackSize-1:
            raise ValueError("上溢异常")
        self.top+=1
        self.data[self.top]=x
    def Pop(self):
        if self.top==-1:
            raise ValueError("下溢异常")
        self.top-=1
        return self.data[self.top+1]

    def GetTop(self):
        if self.top==-1:
            raise ValueError("下溢异常")
        return self.data[self.top]

    def display(self):
        for i in range(self.top+1):
            print(self.data[i],end=" ")
        print()

s=SeqStack()
s.Push(1)
s.Push(2)
s.display()
s.Push(3)
s.Pop()
s.display()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值