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