学生表抽象成一个栈,每个学生(包括姓名、学号、成绩)作为栈中的一个元素,该栈采用顺序存储结构,对该栈进行初始化、入栈、出栈和取栈顶元素基本操作,请编写代码实现(数据结构)
时间: 2024-10-15 07:23:03 浏览: 21
在Python中,我们可以使用内置的`list`数据结构来模拟顺序栈,并实现所需的四个基本操作:初始化、入栈(push)、出栈(pop)以及取栈顶元素(peek)。下面是一个简单的实现:
```python
class StudentStack:
def __init__(self):
self.students = []
# 初始化为空列表
def initialize(self):
pass
# 入栈操作,添加一个新的学生到栈顶
def push_student(self, name, id, score):
student = {"name": name, "id": id, "score": score}
self.students.append(student)
# 出栈操作,移除并返回栈顶的学生
def pop_student(self):
if not self.is_empty():
return self.students.pop()
else:
raise IndexError("Stack is empty")
# 取栈顶元素操作,查看栈顶学生的姓名等信息,但不删除
def peek_student(self):
if not self.is_empty():
return self.students[-1]
else:
raise IndexError("Stack is empty")
# 检查栈是否为空
def is_empty(self):
return len(self.students) == 0
# 使用示例
stack = StudentStack()
stack.push_student("张三",
阅读全文