学生表抽象成一个栈,每个学生(包括姓名、学号、成绩)作为栈中的一个元素,该栈采用顺序存储结构,对该栈进行初始化、入栈、出栈和取栈顶元素基本操作,请编写代码实现
时间: 2024-10-15 12:22:41 浏览: 12
在Python中,我们可以创建一个名为`StudentStack`的简单栈数据结构,使用列表(list)作为底层的顺序存储结构,因为列表在Python中支持高效的插入和删除操作。以下是基本的栈操作的实现:
```python
class Student:
def __init__(self, name, id, score):
self.name = name
self.id = id
self.score = score
class StudentStack:
def __init__(self):
# 初始为空的栈
self.students = []
# 入栈(push)
def push(self, student):
self.students.append(student)
# 出栈(pop)
def pop(self):
if not self.is_empty():
return self.students.pop()
else:
raise Exception("Stack is empty")
# 取栈顶元素(peek)
def top(self):
if not self.is_empty():
return self.students[-1]
else:
raise Exception("Stack is empty")
# 检查栈是否为空
def is_empty(self):
return len(self.students) == 0
# 示例
student1 = Student("张三", 1001, 95)
student2 = Student("李四", 1002, 88)
stack = StudentStack()
stack.push(student1)
stack.push(student2)
print(stack.top()) # 输出: Student object with attributes: name='张三', id=1001, score=95
print(stack.pop().name) # 输出: 李四
```
阅读全文