Task 20a Стековый обход ЛПК public void parseLPK Node_Task20 root Stac

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//Task 20a - Стековый обход ЛПК
public void parseLPK() {
Node_Task20 p = root;
Stack<Node_Task20> s = new Stack<Node_Task20>();
while (p != null || !s.isEmpty()) {
if (p != null) {
s.push(p);
p = p.getLeft();
}
else {
p = s.peek();
if (p.getRight() != null && p.getRight().getMark() != 1) {
p = p.getRight();
}
else {
p = s.pop();
p.setMark(1);
out.print(p.getValue() + " ");
p = null;
}
}
}
}