一.栈结构(stack)
栈类型数据结构相当于一个容器,其特点是先进后出,因此栈具有以下几个功能:压栈即入栈,出栈,计算元素个数,返回栈顶元素,判空等操作。
因此将讲个功能命名为:push(),pop(),size(),peek(),is_empty()运用python代码实现:
#-*-code = utf-8 -*-
class stack(object):
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def push(self,item):
#压栈
self.items.append(item)
def pop(self):
''' 弹出或删除一个元素'''
return self.items.pop()
def size(self):
return len(self.items)
def peek(self):
'''返回栈顶元素'''
return self.items[len(self.items)-1]
def delete(self):
for i in range(0,len(self.items)):
self.items.pop()
#del self.items
if __name__ == '__main__':
sta = stack()
for i in range(0,10):
sta.push(i)
print("the size of the stack is :%d"%(sta.size()))
a = [1,2,3,4,5,6]
a.pop()
#pop()本身就是弹出栈顶元素
#加入下标后弹出指定位置元素
print(a)
sta.push(11)
print("the size of the stack is :%d"%(sta.size()))
print(sta.peek())
sta.pop()
print("the size of the stack is :%d"%(sta.size()))
print(sta.is_empty())
sta.delete()
print(sta.is_empty())
print(sta.size())
这种写法有个问题就是在pop()功能的地方,这里本身pop的功能是在列表中删除列表的最后一个元素,也可以删除指定下标位置的元素pop(i),因此为了满足本次stack的功能我们这里不使用删除指定下标元素。