入栈和出栈的基本操作python头歌
时间: 2024-09-23 17:12:09 浏览: 14
在Python中,入栈(push)和出栈(pop)是操作数据结构堆栈(stack)的基本操作。堆栈是一种先进后出(Last In, First Out, LIFO)的数据结构。
**入栈(Push)**:
当你想要将一个元素添加到堆栈顶部时,可以使用`append()`函数。例如:
```python
stack = []
stack.append("Element") # 将"Element"推入栈顶
```
**出栈(Pop)**:
从堆栈顶部移除并返回最后一个添加的元素,可以使用`pop()`函数。如果不指定参数,默认弹出并返回最后一个元素:
```python
element = stack.pop() # 弹出并获取栈顶元素
print(element) # 输出最近添加的元素
```
如果希望只查看当前栈顶元素而不立即删除,可以使用`peek()`(Python列表无此方法,但可以自定义),或者`top`(一些库如`collections`中的`Stack`有提供):
```python
if stack:
top_element = stack[-1] # 查看栈顶元素但不删除
```
相关问题
python头歌入栈和出栈的基本操作代码
在Python中,可以使用内置的数据结构`list`来模拟栈(Stack)的行为。栈是一种后进先出(LIFO,Last In First Out)的数据结构,常见的基本操作包括入栈(push)、出栈(pop)以及查看栈顶元素(peek)。以下是这些操作的简单代码示例:
```python
class Stack:
def __init__(self):
self.stack = []
# 入栈(添加元素)
def push(self, item):
self.stack.append(item)
# 出栈(移除并返回顶部元素,如果为空则抛异常)
def pop(self):
if not self.is_empty():
return self.stack.pop()
else:
raise IndexError("Stack is empty")
# 查看栈顶元素(不删除,仅用于检查)
def peek(self):
if not self.is_empty():
return self.stack[-1]
else:
raise IndexError("Stack is empty")
# 判断栈是否为空
def is_empty(self):
return len(self.stack) == 0
# 使用例子
stack = Stack()
stack.push(1)
stack.push(2)
print(stack.peek()) # 输出:2
stack.pop()
print(stack.peek()) # 输出:1
```
在这个例子中,我们定义了一个名为`Stack`的类,它有一个内部列表`stack`来存储元素。`push`方法将元素添加到列表的末尾,`pop`方法从末尾弹出并返回元素,`peek`方法查看但不修改栈顶元素,`is_empty`方法用于检查栈是否为空。
顺序栈的入栈和出栈操作
顺序栈是一种基于数组实现的栈,入栈和出栈操作都是在栈顶进行的。具体来说,入栈操作就是将元素插入到栈顶,出栈操作就是将栈顶元素弹出。
下面是顺序栈的入栈和出栈操作的代码实现:
```python
class SeqStack:
def __init__(self, maxsize):
self.maxsize = maxsize
self.stack = [None] * self.maxsize
self.top = -1
def is_empty(self):
return self.top == -1
def is_full(self):
return self.top == self.maxsize - 1
def push(self, data):
if self.is_full():
raise Exception("Stack is full")
self.top += 1
self.stack[self.top] = data
def pop(self):
if self.is_empty():
raise Exception("Stack is empty")
data = self.stack[self.top]
self.top -= 1
return data
```