从结构上来说,栈是“后进者先出,先出者后进”;从操作上来说,栈是一种“操作受限”的线性表,只允许在一端插入和删除数据;从实现上来说,用数组实现的栈称为顺序栈,用链表实现的栈,称为链式栈。
链式栈的结点结构:
根据链式栈的特点,单链表的结构就可以满足栈的结构,所以链式栈的结点结构和单链表的结点结构式相同的。1
2
3
4class Node(object):
def __init__(self, data=None, _next=None):
self.data = data
self._next = _next
链式栈:
为了更好体现出链式栈在栈顶的操作,我们将头指针_head换成顶指针_top1
2
3class LinkedStack(object):
def __init__(self, _top=None):
self._top = _top
入栈操作:
1 | def push(self, value): |
出栈操作:
1 | def pop(self): |