前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python实现一个简单的栈结构

Python实现一个简单的栈结构

作者头像
雪飞鸿
发布2023-07-09 14:55:07
980
发布2023-07-09 14:55:07
举报
文章被收录于专栏:me的随笔me的随笔

基于list来实现一个栈:

代码语言:javascript
复制
class SimpleStack:
    def __init__(self):
        self.__stack: list = []
​
    def __iter__(self):
        return SimpleStackIterator(self)
​
    def __len__(self):
        return len(self.__stack)
​
    def __getitem__(self, index):
        if index >= len(self.__stack):
            return None
        return self.__stack[index]
​
    def pop(self):
        if len(self.__stack) <= 0:
            return None
        return self.__stack.pop()
​
    def push(self, item):
        return self.__stack.append(item)

定义一个栈的迭代器,实现对栈进行迭代,但不弹出栈中的元素

代码语言:javascript
复制
class SimpleStackIterator:
    def __init__(self, iterable: SimpleStack):
        self.__iterable = iterable
        self.__len = len(iterable)
        self.__current = 0
​
    def __iter__(self):
        return self
​
    def __next__(self):
        while True:
            if self.__current >= self.__len:
                raise StopIteration
            ele = self.__iterable[self.__current]
            self.__current += 1
            return ele

具体使用:

代码语言:javascript
复制
stack_size = 5
stack = SimpleStack()
​
for i in range(stack_size):
    stack.push(i)
​
for i in iter(stack):
    print(i)
​
for i in range(stack_size):
    ele = stack.pop()
    print(ele)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档