栈的相关操作
栈也是数据结构中的一种,其特点是先进后出,后进先出。
类似于:要把薯片装进装薯片的筒里,最后进去的一片,是最先被吃掉的。栈的操作相比于链表,比较简单,常见栈的操作包括:进栈与出栈操作。
本次学习内容包括:定义栈结构,数据进栈以及数据出栈操作。
#创建一个栈
class Strack:
def __init__(self):
self.strack=[]#创建一个空列表
#定义进栈操作
def _add(self,dataval):
#判断数据是否在列表中
if dataval not in self.strack:
self.strack.append(dataval)
return self.strack
else:
return False
#定义出栈操作
def remove_(self):
#如果列表长度为0,表示列表中没有元素为空,不能删除
#如果不为空,则使用pop删除元素
if len(self.strack)<=0:
return ('列表为空')
else:
return (self.strack.pop())
查看栈顶栈底元素
def bottom(self): #查看栈底元素
return self.strack[0]
def top(self): #查看栈定元素
return self.strack[-1]
#栈的调用操作
st=Strack()#类实例化
#st._add('1')
#st._add('2')
print(st.remove_())
st._add('3')
#st._add('3') #返回False
print(st.remove_())
st=Strack()#类实例化
st._add('1')
st._add('2')
#print(st.remove_())
st._add('3')
#st._add('3') #返回False
#print(st.remove_())
print('The bottom element is:\n',st.bottom())
print('The top element is:\n',st.top())