python数据结构学习附代码(二)栈

(二)StackStructure栈结构

栈是线性的集合,其访问操作被严格限制在栈的顶(一端)

栈严格遵从先入后出(或叫后入先出,LIFO)协议

例如, 洗干净的盘子叠起来存放,放在最上面的是最后放上去的盘子

栈的操作包括:

push(item):将item放入栈顶,进栈

pop: 将栈顶的值返回,并将其删除,出栈

peek:返回栈顶的值

python内置的线性结构有数组结构,因此栈可以由数组实现,但数组本身是可以从任何位置访问,且数组的大小初始时固定。

还有一种方法,使用链表构成栈

(一)链表构成的栈

本文使用了抽象集合AbstractStack和AbstrackCollection,以及链表结构类Node,都在文末给出代码

初始化:

"""
File: LinkedStack.py
"""
from AbstractStack import AbstractStack
from node import Node

class linkedStact(AbstractStack):
    """an linked-stack implementation"""
    def __init__(self, sourceCollection):
        """initial the state of stack"""
        self._items = None
        AbstractStack.__init__(self, sourceCollection)

peek操作

你可能感兴趣的:(python,数据结构,栈,stack,数据结构,python)