python stack栈的实现方式

在stack栈数据结构中,数据像积木那样一层层堆起来,后面加入的数据就放在最上层。使用的时候,最上层的数据第一个被用掉,这就叫做”后进先出”,英文叫LIFO 。



下面是用python实现了stack栈,实现的逻辑很清晰,栈是后进后出,类似子弹夹,StackNode类有两个属性,value是值,next是下个Node. 每次push的时候会通过Stack类的self.top做关联.  

#coding:utf-8
class StackNode(object):
    def __init__(self, value):
        self.value = value
        self.next = None


class Stack(object):
    def __init__(self, top=None):
        self.top = top

    def is_empty(self):
        return self.top is None

    def push(self, val):
        if self.is_empty():
            self.top = StackNode(val)
            return
        else:
            node = StackNode(val)
            node.next = self.top.next self.top = node
            return

    def pop(self):
        if self.is_empty():
            raise("Stack Data is Empty\n")
            return
        node = self.top
        self.top = self.top.next
        return node

s = Stack()
s.push("123")
s.push("234")
print s.pop().value
#print s.pop().value

END.


大家觉得文章对你有些作用! 如果想赏钱,可以用微信扫描下面的二维码,感谢!
另外再次标注博客原地址  xiaorui.cc

发表评论

邮箱地址不会被公开。 必填项已用*标注