创建名为 ex030501_02.py 的文件,在其中编写结点的类和链式栈的类,后者必须包含 (1)初始化一个链式栈 LinkStack。 (2)判断栈是否为空。 (3)将元素 2,4,6 依次进栈。 (4)获取栈顶元素。 (5)将栈中元素依次出栈并输出。
时间: 2024-10-29 09:19:39 浏览: 5
Ex08_1.rar_C++ CFile类_c 文件操作类
首先,我们创建一个名为 `ex030501_02.py` 的文件,并在这个文件里定义链式栈(LinkStack)类。链式栈是一种基于节点的数据结构,我们将实现以下几个关键功能:
```python
class Node:
def __init__(self, value):
self.value = value
self.next = None
class LinkStack:
def __init__(self):
"""
初始化一个链式栈 LinkStack。
"""
self.top = None
def is_empty(self):
"""
判断栈是否为空。
"""
return self.top is None
def push(self, value):
"""
将元素入栈。
"""
new_node = Node(value)
if not self.is_empty():
new_node.next = self.top
self.top = new_node
def pop(self):
"""
获取并移除栈顶元素。
"""
if self.is_empty():
raise IndexError("Stack is empty.")
result = self.top.value
self.top = self.top.next
return result
def display(self):
"""
将栈中元素依次出栈并输出。
"""
elements = []
current = self.top
while current:
elements.append(current.value)
current = current.next
print("Elements in the stack:", elements)
# 测试链式栈
stack = LinkStack()
stack.push(2)
stack.push(4)
stack.push(6)
print("Is stack empty?", stack.is_empty()) # False
print("Top element:", stack.pop()) # 输出第一个元素,如 2
print("Displaying stack after popping:", stack.display()) # 输出剩余元素 [4, 6]
```
这个例子展示了如何创建一个链式栈类以及其基本操作。现在你可以运行 `ex030501_02.py` 文件来测试链式栈的功能。
阅读全文