感觉用python写栈特别方便,因为不像c/c++那样要自己写append之类的函数,列表本身已经自带了很多函数,纯当写类的练手吧。code:
class Stack:
def __init__(self,limit=10):#初始化,栈的最大范围默认是10
#变量名字前有两条下划线,说明是私有变量
self.__stack=[]
self.__limit=limit
def __str__(self):#使用print的时候直接调用
return ''.join([str(i) for i in self.__stack])
def push(self,data):#入栈
if len(self.__stack)>=self.__limit:
self.double_limit()#如果栈的范围不够就扩大一倍
self.__stack.append(data)
def pop(self):#出栈
if len(self.__stack)<=0:
return -1
else:
self.__stack.pop()#调用python列表自带的pop
def peek(self):#返回栈顶的元素
if len(self.__stack)<=0:
return -1
else :
return self.__stack[-1]
def is_empty(self):#判断是否为空
return self.size()==0
def size(self):
return len(self.__stack)
def double_limit(self):
self.__limit*=2
#示例代码
mystack=Stack()
for i in range(10):
mystack.push(i)
print(mystack)
mystack.pop()
print(mystack)
print(mystack.peek())输出:0123456789
012345678
8倒是私有变量这个今天才知道。以上。
本文介绍了一种使用Python实现栈数据结构的方法。通过定义一个名为Stack的类,并实现了基本的栈操作,如入栈(push)、出栈(pop)、查看栈顶元素(peek)等。此外还介绍了如何处理栈满的情况。
1420

被折叠的 条评论
为什么被折叠?



