class Stack: def __init__(self): self.items = [] def is_empty(self): return len(self.items) == 0 def push(self, item): self.items.append(item) def pop(self): if not self.is_empty(): return self.items.pop() else: return None def peek(self): if not self.is_empty(): return self.items[-1] else: return None def size(self): return len(self.items)
时间: 2024-02-10 11:34:01 浏览: 39
这是一个 Python 中的 Stack 数据结构的实现,它包含以下几个方法:
- `__init__(self)`:构造方法,初始化一个空的 Stack;
- `is_empty(self)`:判断 Stack 是否为空,如果 Stack 为空则返回 True,否则返回 False;
- `push(self, item)`:将一个元素 item 加入 Stack 的顶部;
- `pop(self)`:弹出并返回 Stack 的顶部元素,如果 Stack 为空则返回 None;
- `peek(self)`:返回 Stack 的顶部元素,但不弹出,如果 Stack 为空则返回 None;
- `size(self)`:返回 Stack 的元素个数。
这个 Stack 的实现使用了 Python 的 List 数据结构,可以用于实现各种算法和问题中需要使用 Stack 的场合。
相关问题
class Stack: def __init__(self): self.items = [] def push(self, item): self.items.append(item) def pop(self): return self.items.pop() def peek(self): return self.items[-1] def is_empty(self): return len(self.items) == 0
这是一个用Python语言实现的栈(Stack)数据结构,其中包括以下几个方法:
1. `__init__`方法:初始化一个空的栈,用一个空列表`self.items`来存储栈中的元素。
2. `push`方法:将一个元素压入栈中,即将该元素添加到列表`self.items`的末尾。
3. `pop`方法:从栈中弹出(删除)一个元素,并返回该元素的值。该方法会将列表`self.items`中最后一个元素删除并返回。
4. `peek`方法:查看(但不弹出)栈顶的元素,即返回列表`self.items`中的最后一个元素。
5. `is_empty`方法:判断栈是否为空,即判断列表`self.items`是否为空。如果为空则返回`True`,否则返回`False`。
这些方法可以用于实现栈的基本操作,如压入元素、弹出元素、查看栈顶元素等。
class Stack: def __init__(self): self.items = [] def push(self, item): self.items.append(item) def pop(self): return self.items.pop() def is_empty(self): return len(self.items) == 0 def top(self): return self.items[-1]解释这段代码
这段代码是实现了一个栈的类,包括以下几个方法:
- `__init__(self)`:初始化一个空栈,将栈的items属性设为空列表。
- `push(self, item)`:向栈中添加一个元素,将元素添加到items列表的末尾。
- `pop(self)`:从栈中弹出一个元素,将items列表的最后一个元素弹出并返回。
- `is_empty(self)`:判断栈是否为空,栈为空当且仅当items列表为空。
- `top(self)`:返回栈顶元素,即items列表的最后一个元素。
这个栈类可以用于其他需要用到栈的场合,例如中缀表达式转后缀表达式的算法中。