二叉树中序遍历问题
已知二叉树的结构定义如下,求中序遍历算法。(不用递归也不用栈)
struct BTnode
{
int data;
struct BTnode *lchild;
struct BTnode *rchild;
struct BTnode *parent;
}
最近遇到了这个问题,一直没有想出完美的算法。求教了。。。
[解决办法]
lx看你的
[解决办法]
lx看你的
[解决办法]
lx看你的
[解决办法]
lx我也看你的!
[解决办法]
还真得看lX的!
[解决办法]
算法这玩意我不认识它。
楼主看看有没有算法方面的资料,或者去C/C++版去问,那里牛人多。
[解决办法]
临时写了一个,还没测试过,主要抛砖引玉下,错了请轻拍~
BTnode * p = root;
BTnode * temp = null;
while(p)
{
while(p->lchild)
{
p=p->lchild;
}
visit(p);
while(p)
{
temp = p;
p=p->rchild;
if(p)
{
visit(p);
break;
}
else
{
p = temp;
while(p != root && p->parent->rchild == p)
{
p = p->parent;
}
}
visit(p);
p=p->parent;
}
}