Bootstrap

C/C++实现寻找二叉树中序前驱

功能

寻找二叉树中序前驱
中序前驱: 中序遍历序列的前一个
如:
在这里插入图片描述
该二叉树的中序遍历的结果为DGBEAFC,如果找F结点的前驱,即序列中的A。
该方法在构造线索二叉树时起到关键作用!!

 

代码

InOrder函数实际上就是中序遍历,其包含的visit函数作用是寻找前驱:如果q和p指向了同一个结点,那么pre就是前驱;如果不同,则pre按照中序遍历向前移动,然后q按照中序遍历继续向前。

#include <iostream>
#include <stdlib.h>

using namespace std;

typedef char ElemType;

typedef struct BiTNode{
   
	ElemType data;
	struct BiTNode *l,*r;
}BiTNode,*BiTree;

//全局变量
BiTNode 
;