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

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());
}


怎么输不出结果啊~~??哪错了
...全文
112 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
不知,帮顶
hichi2000 2008-04-25
  • 打赏
  • 举报
回复
栈里面的元素的tag都是L啊
fire_woods 2008-04-23
  • 打赏
  • 举报
回复
主函数都米.

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧