Skip to content

Commit 6afc408

Browse files
author
tiberius
committed
bla bla bla
1 parent ec98fc2 commit 6afc408

File tree

1 file changed

+30
-8
lines changed

1 file changed

+30
-8
lines changed

cpp4j/treeiterator.h

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,43 @@ template <class T, template<typename> class Order > class TreeIterator {
2121

2222
// zum vorherigen Element
2323
TreeIterator<T, Order>& operator++() {
24+
cout << m_node->m_value << endl;
25+
2426
if (m_node == NULL)
2527
return *this;
2628

2729
if (m_node->m_left == NULL) {
28-
TreeNode<T, Order> * parent = m_node;
29-
while (parent != NULL && parent->m_right == NULL)
30-
parent = parent->m_up;
31-
32-
if (m_node == parent->m_right || m_node->m_up == parent->m_right)
33-
m_node = NULL;
34-
else
35-
m_node = parent->m_right;
30+
// nach rechts oder nach oben->rechts
31+
32+
// parent von node
33+
TreeNode<T, Order> * parent = m_node->m_up;
34+
35+
// laufe nach oben, wenn du links vom oberen bist
36+
//if (parent->m_left == m_node) {
37+
38+
// laufe nach oben, weil du links vom oberen bist
39+
parent = parent->m_up; // urelter
40+
41+
//
42+
while (parent != NULL && parent->m_up != NULL) {
43+
parent = parent->m_up;
44+
45+
if (parent->m_right != NULL) {
46+
break;
47+
}
48+
}
49+
50+
if (parent == NULL)
51+
m_node = NULL;
52+
else
53+
m_node = parent->m_right;
54+
//} else if (parent->m_right == m_node &&
55+
56+
// beende wenn du rechts von deinem oberen bist und unter dir nichts mehr ist
3657
return *this;
3758
}
3859

60+
// nach unten
3961
m_node = m_node->m_left;
4062
return *this;
4163
}

0 commit comments

Comments
 (0)