File tree Expand file tree Collapse file tree 1 file changed +30
-8
lines changed Expand file tree Collapse file tree 1 file changed +30
-8
lines changed Original file line number Diff line number Diff line change @@ -21,21 +21,43 @@ template <class T, template<typename> class Order > class TreeIterator {
21
21
22
22
// zum vorherigen Element
23
23
TreeIterator<T, Order>& operator ++() {
24
+ cout << m_node->m_value << endl;
25
+
24
26
if (m_node == NULL )
25
27
return *this ;
26
28
27
29
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
36
57
return *this ;
37
58
}
38
59
60
+ // nach unten
39
61
m_node = m_node->m_left ;
40
62
return *this ;
41
63
}
You can’t perform that action at this time.
0 commit comments