http://www.geeksforgeeks.org/inorder-tree-traversal-without-recursion-and-without-stack/
1
#include <iostream>
2
#include <vector>
3
#include <algorithm>
4
#include <queue>
5
#include <stack>
6
#include <
string
>
7
#include <fstream>
8
using
namespace
std;
9
10
struct
node {
11
int
data;
12
struct
node *left, *
right;
13
node() : data(
0
), left(NULL), right(NULL) { }
14
node(
int
d) : data(d), left(NULL), right(NULL) { }
15
};
16
17
void
print(node *
root) {
18
if
(!root)
return
;
19
node *cur =
root;
20
while
(cur) {
21
if
(!cur->
left) {
22
cout << cur->data <<
"
"
;
23
cur = cur->
right;
24
}
25
else
{
26
node *pre = cur->
left;
27
while
(pre->right && pre->right != cur) pre = pre->
right;
28
if
(pre->right ==
NULL) {
29
pre->right =
cur;
30
cur = cur->
left;
31
}
32
else
{
33
pre->right =
NULL;
34
cout << cur->data <<
"
"
;
35
cur = cur->
right;
36
}
37
}
38
}
39
}
40
41
void
prints(node *
root) {
42
if
(!root)
return
;
43
prints(root->
left);
44
cout << root->data <<
"
"
;
45
prints(root->
right);
46
}
47
48
int
main() {
49
node* root =
new
node(
1
);
50
root->left =
new
node(
2
);
51
root->right =
new
node(
3
);
52
root->left->left =
new
node(
4
);
53
root->left->right =
new
node(
5
);
54
print(root);
55
return
0
;
56
}
?
Data Structure Binary Tree: Inorder Tree Traversal without recursion and without stack!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

