Python 数据结构之堆栈实例代码
Python堆栈
堆栈是一个后进先出(LIFO)的数据结构.堆栈这个数据结构可以用于处理大部分具有后进先出的特性的程序流.
在堆栈中,push和pop是常用术语:
- push:意思是把一个对象入栈.
- pop:意思是把一个对象出栈.
下面是一个由Python实现的简单的堆栈结构:
stack=[]#初始化一个列表数据类型对象,作为一个栈
defpushit():#定义一个入栈方法
stack.append(raw_input('EnterNewString:').strip())
#提示输入一个入栈的String对象,调用Str.strip()保证输入的String值不包含多余的空格
defpopit():#定义一个出栈方法
iflen(stack)==0:
print"Cannotpopfromanemptystack!"
else:
print'Remove[',`stack.pop()`,']'
#使用反单引号(``)来代替repr(),把String的值用引号扩起来,而不仅显示String的值
defviewstack():#定义一个显示堆栈中的内容的方法
printstack
CMDs={'u':pushit,'o':popit,'v':viewstack}
#定义一个Dict类型对象,将字符映射到相应的function.可以通过输入字符来执行相应的操作
defshowmenu():#定义一个操作菜单提示方法
pr="""
p(U)sh
p(O)p
(V)iew
(Q)uit
Enterchoice:"""
whileTrue:
whileTrue:
try:
choice=raw_input(pr).strip()[0].lower()
#Str.strip()去除String对象前后的多余空格
#Str.lower()将多有输入转化为小写,便于后期的统一判断
#输入^D(EOF,产生一个EOFError异常)
#输入^C(中断退出,产生一个keyboardInterrupt异常)
except(EOFError,KeyboardInterrupt,IndexError):
choice='q'
print'\nYoupicked:[%s]'%choice
ifchoicenotin'uovq':
print'Invalidoption,tryagain'
else:
break
ifchoice=='q':
break
CMDs[choice]()
#获取Dict中字符对应的functionName,实现函数调用
if__name__=='__main__':
showmenu()
NOTE:在堆栈数据结构中,主要应用了List数据类型对象的容器和可变等特性,表现在List.append()和List.pop()这两个列表类型内建函数的调用.
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!