//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;
}
}
}
}