python 栈的简单实现

简介: 栈(stacks)是一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表, 它按照先进后出的原则存储数据(Last In First Out - LIFO)。代码(使用list):class Stack(object): # 初始化 def __init__(self): self.

栈(stacks)是一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表, 它按照先进后出的原则存储数据(Last In First Out - LIFO)。

  • 代码(使用list):

    class Stack(object):
        # 初始化
        def __init__(self):
            self.items = []
        # 判断是否为空
        def is_empty(self):
            return self.items == []
        # 返回栈顶元素
        def peek(self):
            if self.is_empty():
                raise KeyError("stack is None")
            return self.items[len(self.items) - 1]
        #返回栈的大小
        def size(self):
            return len(self.items)
        # 入栈,把新的元素放进栈里
        def push(self, item):
            self.items.append(item)
        # 出栈,把栈顶元素丢出去
        def pop(self):
            if self.is_empty():
                raise KeyError("stack is None")
            return self.items.pop()
    
    if __name__ == '__main__' :
        a_stack = Stack()
        # 插入元素
        a_stack.push('一')
        a_stack.push('二')
        a_stack.push('三')
        
        print(a_stack.size())    # 3
        print(a_stack.peek())    # 三
        print(a_stack.pop())     # 三
        print(a_stack.peek())    # 二
        print(a_stack.size())    # 2
        print(a_stack.is_empty())  # False
        a_stack.__init__()
        print(a_stack.is_empty())  # True
    

    本文链接:时光不写博客

相关文章
|
4月前
|
Python
Python实现数据结构(如:链表、栈、队列等)。
Python实现数据结构(如:链表、栈、队列等)。
271 0
|
4月前
|
前端开发 Python
Python中如何用栈实现队列
Python中如何用栈实现队列
231 0
|
1月前
|
Python
【Leetcode刷题Python】剑指 Offer 30. 包含min函数的栈
本文提供了实现一个包含min函数的栈的Python代码,确保min、push和pop操作的时间复杂度为O(1)。
17 4
|
1月前
|
Python
【Leetcode刷题Python】946. 验证栈序列
LeetCode题目“946. 验证栈序列”的Python解决方案,通过模拟栈的压入和弹出操作来验证给定的两个序列是否能通过合法的栈操作得到。
20 6
|
1月前
|
Python
【Leetcode刷题Python】剑指 Offer 09. 用两个栈实现队列
使用两个栈实现队列的Python解决方案,包括初始化两个栈、实现在队列尾部添加整数的appendTail方法和在队列头部删除整数的deleteHead方法,以及相应的示例操作。
31 2
|
2月前
|
网络协议 Python
python对tcp协议栈进行优化之一
**TCP优化摘要:** - MSS优化涉及调整TCP最大段大小,Python中可使用`socket.getsockopt()`查询MSS。 - Scapy是Python库,用于创建和发送网络包,可用于测试和优化协议栈性能。 - LwIP是轻量级TCP/IP协议栈,适合嵌入式设备,可通过分析和调整提升性能,特别是实时性和资源管理。
|
1月前
|
Python
【Leetcode刷题Python】232. 用栈实现队列
如何使用Python语言通过两个栈来实现队列的所有基本操作,包括入队(push)、出队(pop)、查看队首元素(peek)和判断队列是否为空(empty),并提供了相应的代码实现。
14 0
|
2月前
|
Python
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
|
3月前
|
SQL 算法 数据挖掘
探索有效括号 力扣第20题:从栈到递归的多角度解法 【含图解 python】
探索有效括号 力扣第20题:从栈到递归的多角度解法 【含图解 python】
|
4月前
|
编解码 计算机视觉 Python
pyautogui库简单实现的python刷课程序
pyautogui库简单实现的python刷课程序