首页 > 编程知识 正文

python中栈的定义,哪些数据结构可以实现栈

时间:2023-05-06 03:02:53 阅读:232084 作者:3507

目录

栈的定义栈的基本操作小练习 1.栈的定义

栈遵循后进先出(Last In First Out),现实生活中也有不少这样的例子,比如在学校食堂吃完饭时,你把盘子放到桌子上,叠起来之后,阿姨过来拿盘子出去洗,假如是手洗,那肯定是先从最上面的盘子开始拿来洗的,而最上面的盘子是最后放上去的,却是第一个 被拿出来的,这就是后进先出,与之相同的还有查看网页,比如你查找“stack”,往往你会打开好几张网页链接,然后再继续开,你一开始看的网页应该就是你最后打开的。

2.栈的基本操作 class Node(object): def __init__(self, data, next = None): self.data = data self.next = nextclass Stack(object): def __init__(self, top = None): self.top = top def push(self,data): #创建新的节点放到栈顶 self.top = Node(data, self.top) def pop(self): #拿出栈顶元素,原来的栈发生改变 if self.top is None: return None data = self.top.data self.top = self.top.next return data def peek(self): #查看栈顶元素,原来的栈不变 return self.top.data if self.top is not None else None def isEmpty(self): return self.peek() is Noneif __name__ == "__main__": stack = Stack() stack1 = stack.push(1) stack1 = stack.push(2) print stack.peek(), #查看栈顶元素 stack.pop() print stack.peek()#输出: 2 1 3.小练习

使用栈,使得输入字符串元素倒转,即:

"apple"→"elppa"

def revStrings(myStr): stack = Stack() for ch in myStr: stack.push(ch) revStr = '' while not stack.isEmpty(): revStr += stack.pop() return revStr print revStrings("apple")

写不出或报错的人,主要有以下原因:

不会使用栈的思想:后进先出没想到字符串遍历字符串拼接问题

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。