0%

线索二叉树

线索二叉树(Threaded BinaryTree)

中序线索化

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;
}
Powered By Valine
v1.4.14