介绍一下:
栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。
- 它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
- 栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。
- 栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);
- 栈底固定,而栈顶浮动;
- 栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。
代码实现
用 python 的顺序表 list 实现:
#coding=utf-8
__date__ = ' 21:50'
__author__ = 'sixkery'
class Stact(object):
'''栈'''
# 构造一个栈的容器
def __init__(self):
self.__list = []
def push(self,item):
'''添加一个新的元素到栈顶'''
self.__list.append(item)
def pop(self):
'''弹出栈顶元素'''
return self.__list.pop()
def peek(self):
'''返回栈顶元素'''
if self.__list:
return self.__list[-1]
return None
def is_empty(self):
'''判断栈是否为空'''
return self.__list == []
def size(self):
'''返回栈的的元素个数'''
return len(self.__list)
if __name__ == '__main__':
s = Stact()
s.push(1)
s.push(2)
s.push(3)
s.push(4)
print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())
网友评论