我们在二叉树上的先序、中序、后序遍历都是递归或者非递归完成的。
我们只能找到左、右孩子,而不能找到先、中、后序遍历序列下,元素的前驱和后继。
为此,我们可以设计线索二叉树,定义如下:
struct BiTreeThd
{
int data;
bool lflag, rflag;
struct BiTreeThd* lchild, *rchild;
};
如上,多了lflag和rflag:
(1)当有左/右孩子的时候,lflag/rflag为0。[......]