java遍历queue
时间: 2023-07-11 22:50:17 浏览: 76
可以通过以下方式遍历 Java 中的 Queue:
```java
Queue<String> queue = new LinkedList<>();
queue.offer("a");
queue.offer("b");
queue.offer("c");
for (String s : queue) {
System.out.println(s);
}
```
这个例子中,我们使用 Java 中的 LinkedList 实现 Queue,然后通过调用 `offer()` 方法添加元素。最后,我们通过 for-each 循环遍历 Queue 中的元素。
相关问题
java queue遍历
要遍历Java中的队列(Queue),可以使用迭代器或者增强for循环。以下是两种常见的遍历方式示例:
1. 使用迭代器:
```java
Queue<String> queue = new LinkedList<>();
// 添加元素到队列
queue.add("A");
queue.add("B");
queue.add("C");
Iterator<String> iterator = queue.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
```
2. 使用增强for循环:
```java
Queue<String> queue = new LinkedList<>();
// 添加元素到队列
queue.add("A");
queue.add("B");
queue.add("C");
for (String element : queue) {
System.out.println(element);
}
```
无论使用迭代器还是增强for循环,都可以实现对队列的遍历操作。请注意,队列是一种先进先出(FIFO)的数据结构,所以遍历时会按照元素添加的顺序进行访问。
java 遍历非二叉树
遍历非二叉树可以采用深度优先搜索(DFS)或广度优先搜索(BFS)的方式进行。
深度优先搜索可以采用递归或栈的方式实现。递归实现的代码如下:
```
public void dfs(TreeNode node) {
if (node == null) {
return;
}
visit(node);
for (TreeNode child : node.children) {
dfs(child);
}
}
```
其中 `visit` 方法是对节点的访问操作。
栈实现的代码如下:
```
public void dfs(TreeNode root) {
if (root == null) {
return;
}
Stack<TreeNode> stack = new Stack<>();
stack.push(root);
while (!stack.isEmpty()) {
TreeNode node = stack.pop();
visit(node);
for (int i = node.children.size() - 1; i >= 0; i--) {
stack.push(node.children.get(i));
}
}
}
```
广度优先搜索可以采用队列的方式实现。代码如下:
```
public void bfs(TreeNode root) {
if (root == null) {
return;
}
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
int size = queue.size();
for (int i = 0; i < size; i++) {
TreeNode node = queue.poll();
visit(node);
for (TreeNode child : node.children) {
queue.offer(child);
}
}
}
}
```
其中 `visit` 方法是对节点的访问操作。
阅读全文