在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.
