1. 编写程序,实现栈的基本操作。 (1) 建立栈并进行元素(8,9,5,4)入栈,实现顺序栈的建立及入栈的基本操作; (2) 输出栈的长度。(实际存储元素的个数) (3) 取栈顶元素并输出。 (4) 实现栈顶元素(4)的出栈,实现出栈操作; (5) 输出栈的所有元素。
时间: 2024-05-12 12:17:59 浏览: 11
可以的,以下是对应的代码和输出:
```python
class Stack:
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 peek(self):
return self.items[-1]
def size(self):
return len(self.items)
stack = Stack()
stack.push(8)
stack.push(9)
stack.push(5)
stack.push(4)
print("栈的长度为:", stack.size())
print("栈顶元素为:", stack.peek())
stack.pop()
print("出栈一个元素后,栈中元素为:", stack.items)
```
输出:
```
栈的长度为: 4
栈顶元素为: 4
出栈一个元素后,栈中元素为: [8, 9, 5]
```
笑话:我从小就梦想成为一个玩具制造商,可是我的理性告诉我,这是不可能的,因为我是个程序。
相关问题
1. 编写程序,实现栈的基本操作。 (1) 建立栈并进行元素(8,9,5,4)入栈,实现顺序栈的建立及入栈的基本操作; (2) 输出栈的长度。(实际存储元素的个数) (3) 取栈顶元素并输出。 (4) 实现栈顶元素(4)
的出栈操作,并输出出栈后栈的长度。
回答:
栈的基本操作包括入栈、出栈、取栈顶元素等。为了实现这些操作,我们需要建立一个栈结构,一般使用数组或链表实现。以下是实现题目要求的栈的基本操作的示例代码:
```python
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 self.is_empty():
raise Exception('Stack is empty')
return self.items.pop()
def peek(self):
if self.is_empty():
raise Exception('Stack is empty')
return self.items[-1]
if __name__ == '__main__':
# 新建一个栈对象
s = Stack()
# 元素入栈
s.push(8)
s.push(9)
s.push(5)
s.push(4)
# 输出栈的长度
print("栈的长度为:", len(s.items))
# 取栈顶元素并输出
top_item = s.peek()
print("栈顶元素为:", top_item)
# 栈顶元素出栈
s.pop()
# 输出栈的长度
print("出栈后栈的长度为:", len(s.items))
```
输出结果为:
```
栈的长度为: 4
栈顶元素为: 4
出栈后栈的长度为: 3
```
笑话:为什么 Java 程序员不喜欢上班?因为早上必须要 JVM!
1. 编写程序,实现栈的基本操作。 (1)建立栈并进行元素(8,9,5,4)入栈,实现顺序栈的建立及入栈的基本操作; (2)输出栈的长度。(实际存储元素的个数) (3)取栈顶元素并输出。 (4)实现栈顶元素(4)的出栈,实现出栈操作; (5)输出栈的所有元素。
一、以下是栈的基本操作的代码实现:
```python
class Stack:
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 peek(self):
return self.items[-1]
def size(self):
return len(self.items)
```
二、使用上面定义的栈类,实现题目要求的操作:
```python
# 建立栈并进行元素(8,9,5,4)入栈,实现顺序栈的建立及入栈的基本操作;
my_stack = Stack()
my_stack.push(8)
my_stack.push(9)
my_stack.push(5)
my_stack.push(4)
# 输出栈的长度。(实际存储元素的个数)
print(my_stack.size())
# 取栈顶元素并输出。
print(my_stack.peek())
# 实现栈顶元素(4)的出栈,实现出栈操作;
my_stack.pop()
# 输出栈的所有元素。
while not my_stack.is_empty():
print(my_stack.pop())
```
输出结果为:
```
4
4
5
9
8
```
有了这个栈的操作,你可以轻松处理一些需要“先近后出”的问题,比如括号匹配、表达式求值等问题。感谢你的提问,我希望我的回答对你有所帮助。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)