栈(Stack)
概述:
- 只能在表尾部进行插入或者删除操作
- 进行插入或删除操作的一端称为:栈顶,另一端称为:栈底
- 向栈中插入元素的操作称为:进栈、入栈、压栈
- 从栈中删除元素的操作称为:出栈、退栈
这里给出有关栈的一些相关示例:
class Stack(object):
def __init__(self):
'''初始化栈'''
self.stack=[]
def getLen(self):
'''获取栈的长度'''
return len(self.stack)
def travel(self):
'''遍历栈中的元素'''
for i in self.stack:
print(i,end=',')
print()
def push(self,value):
'''进栈,在栈顶压入元素'''
self.stack.append(value)
def pop(self):
'''获得栈顶元素'''
if self.isEmpty():
raise Exception('该栈为空')
return self.stack.pop()
def isEmpty(self):
'''判断栈是否为空'''
return len(self.stack)==0
if __name__ == '__main__':
stack=Stack() #声明栈的对象
print('-----------测试是否为空--------------')
print('该栈是否为空:',stack.isEmpty())
print('栈的长度为:',stack.getLen())#初次获取栈的长度
print('-----------测试向栈顶压入元素--------------')
stack.push(1) #向栈中添加元素
stack.push(2)
stack.push(3)
stack.push(4)
stack.push(6)
print('该栈是否为空:', stack.isEmpty())
print('栈的长度为:', stack.getLen()) #再次打印栈的长度
print('栈中的元素为',end=':')
stack.travel() # 遍历栈中的元素
print('-----------测试遍历栈中的元素--------------')
print('栈中的元素为', end=':')
stack.travel() # 遍历栈中的元素
print('栈顶的元素为:',stack.pop())
运行结果
-----------测试是否为空--------------
该栈是否为空: True
栈的长度为: 0
-----------测试向栈顶压入元素--------------
该栈是否为空: False
栈的长度为: 5
栈中的元素为:1,2,3,4,6,
-----------测试遍历栈中的元素--------------
栈中的元素为:1,2,3,4,6,
栈顶的元素为: 6
最后,栈遵循先进后出的原则,即栈中先压入的元素,是后出栈的