广度优先遍历二叉树。
1
void BST(Tree t) {
2
Queue q = new Queue();
3
q.enque(t);
4
Tree t = q.deque();
5
while(t) {
6
System.out.println(t.value);
7
q.enque(t.left);
8
q.enque(t.right);
9
t = q.deque();
10
}
11
}
void BST(Tree t) {2
Queue q = new Queue();3
q.enque(t);4
Tree t = q.deque(); 5
while(t) {6
System.out.println(t.value);7
q.enque(t.left);8
q.enque(t.right);9
t = q.deque();10
}11
} 1
class Node {
2
Tree t;
3
Node next;
4
}
5
class Queue {
6
Node head;
7
Node tail;
8
public void enque(Tree t){
9
Node n = new Node();
10
n.t = t;
11
if(!tail){
12
tail = head = n;
13
} else {
14
tail.next = n;
15
tail = n;
16
}
17
}
18
public Tree deque() {
19
if (!head) {
20
return null;
21
} else {
22
Node n = head;
23
head = head.next;
24
return n.t;
25
}
26
}
class Node {2
Tree t;3
Node next;4
}5
class Queue {6
Node head;7
Node tail;8
public void enque(Tree t){9
Node n = new Node();10
n.t = t;11
if(!tail){12
tail = head = n;13
} else {14
tail.next = n;15
tail = n;16
}17
}18
public Tree deque() {19
if (!head) {20
return null;21
} else {22
Node n = head;23
head = head.next;24
return n.t;25
}26
}



浙公网安备 33010602011771号