如何遍历stack中的元素
时间: 2024-05-07 13:20:54 浏览: 10
在大多数编程语言中,栈都是通过数组或链表来实现的。如果是数组实现的栈,可以使用循环遍历数组中的元素。由于栈的本质是“后进先出”,所以在遍历数组时应该从栈顶开始遍历,即数组的最后一个元素。
如果是链表实现的栈,可以通过遍历链表来访问栈中的元素。同样,由于栈的本质是“后进先出”,所以在遍历链表时应该从链表的最后一个节点开始遍历。
以下是一个使用链表实现的栈的遍历示例(使用 Python 语言):
```python
class Node:
def __init__(self, value):
self.value = value
self.next = None
class Stack:
def __init__(self):
self.top = None
def push(self, value):
new_node = Node(value)
new_node.next = self.top
self.top = new_node
def pop(self):
if self.top is None:
return None
else:
popped_node = self.top
self.top = self.top.next
return popped_node.value
def traverse(self):
current_node = self.top
while current_node is not None:
print(current_node.value)
current_node = current_node.next
```
在上面的示例中,`traverse` 方法用于遍历链表并打印每个节点的值。调用 `traverse` 方法将遍历整个栈,并按照“后进先出”的顺序打印每个元素的值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](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)
![](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)