遍历二叉树过程中用线索(前驱和后继)取代空指针的的做法
二 算法分析(给出中序化):
主要是增加俩个指针,pre指针始终指向刚刚访问过的节点p指针始终指向当前访问的节点其中,*pre是*p的前驱*p是*pre的后继
//将二叉树按中序线索化算法
{//将二叉树p中序线索化
if(p)//p非空时,当前访问结点是*p
//建立正在访问节点的前驱结点之间的线索
算法分析:和中序遍历一样递归过程對每个节点仅做一次访问因此对于n个节点的二叉树算法复杂度为O(n)
{//在中序线索树查找*p的后继 {//在中序线索树中找结点*p的中序前趋,设p非空 return q; //當q的右子树为空时它就是最右下结点从上面可以看出,对与非线索二叉树查找其节点十分困难需要遍历,而线索二叉树加入了前驱和後继之后是这种查找变得简单易行