1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| void inCreate(TreeNode *root, TreeNode *&prev) { if(root) { inCreate(root->left, prev); if(root->left == NULL) { root->left_flag = CLUE; root->left = prev; } if(prev && prev->right == NULL) { prev->right_flag = CLUE; prev->right = root; } prev = root; inCreate(root->right, prev); } }
void inOrder(TreeNode *root) { while(root) { while(root->left_flag != CLUE) root = root->left; cout << root->value << " "; while(root->right_flag != LINK) { root = root->right; cout << root->value << " "; } root = root->right; } cout << endl; }
|