二叉数后序遍历非递归算法

nandizhu 2008-04-23 04:03:42

typedef struct bitnode
{
char value;
bitnode *left;
bitnode *right;
}*bitree,bitnode;

typedef enum{L,R} tagtype;

typedef struct stacknode
{
bitree ptr;
tagtype tag;
}stacknode;

void nonrecpostorder(bitree root)
{
stack<stacknode> s;
bitree p=root;
stacknode temp;
do
{
while(p)
{
temp.ptr=p;
temp.tag=L;
s.push(temp);
p=p->left;
}
while(!s.empty()&&s.top().tag==R)
{
p=s.top().ptr;
cout<<p->value;
s.pop();
}
if(!s.empty())
{
temp=s.top();
temp.tag=R;
p=temp.ptr->right;
}
}while(!s.empty());
}


怎么输不出结果啊~~??哪错了
...全文
89 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
UltraBejing 2008-05-01
不知,帮顶
回复
hichi2000 2008-04-25
栈里面的元素的tag都是L啊
回复
fire_woods 2008-04-23
主函数都米.
回复
相关推荐
发帖
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-04-23 04:03
社区公告
暂无公告