python模拟堆栈(判定空满清空入出栈基本操作)

    技术2025-10-16  9

    堆栈基本简介

    堆栈是一种数据结构,栈可以看作一个容器,栈的基本操作是进栈和出栈。后进先出是它的规则。如何用python模拟呢?用列表

    列表如何模拟

    列表有一系列操作可以完整的模拟,从尾部加入:

    list.append(x)

    出栈

    list.pop() 或者 del stack[-1]

    基本操作就这些,其他都是边边角角的东西。先看完效果就行了 如果对数据结构感兴趣,可以查看这篇博文: 执念斩长河专栏数据结构–目录

    例子:用python模拟数据结构中的堆栈

    实验效果 实验代码:

    # -*- coding:utf-8 -*- class PyStack: def __init__(self,size=20): self.stack = [] self.size = size self.top = -1 def setSize(self,size): self.size = size def push(self,element): if self.isFull(): raise StackException('PyStatckOverflow') else: self.stack.append(element) self.top = self.top + 1 def pop(self): if self.isEmpty(): raise StackException('PyStatckUnderflow') else: element = self.stack[-1] self.top -= 1 del self.stack[-1] return element def Top(self): return self.top def empty(self): self.stack = [] self.top = -1 def isEmpty(self): if self.top == -1: return True else: return False def isFull(self): if self.top == self.size - 1: return True else: return False class StackException(Exception): def __init__(self,data): self.data = data def __str__(self): return self.data if __name__ == '__main__': print('创建堆栈(默认最大为20).....') stack = PyStack() print('压入0-19元素....') for i in range(20): stack.push(i) print('判定堆栈是否满了....') print(stack.isFull()) print('弹出一个元素...') print(stack.Top()) print('将堆栈设置为空....') stack.empty() print('判定堆栈是否为空') print(stack.isEmpty())
    Processed: 0.009, SQL: 9