@今年高程@的题目会出现这种!!!不要错过!

jjfjszjg 2003-10-08 12:57:04
根据消息称有可能出现“后序遍历二叉树的非递归函数”来实现数据的处理和存储
小弟从清华的书上看到例子,但不太对,大家改!
void postorder(tree *b)
{tree *stack[100],*p;
int tag[100],top=0;
p=b;
do
{ while (p!=0)
{top++;
stack[top]=p;
tag[top]=0;
p=p->left;
}

if (top>0)
{
p=stack[top];
if (tag[top]==1)
{top--;
printf("%d",p->data);
}

if (top>0)
{p=p->right;
tag[top]=1;
}
}
} while (p!=0&&top!=0) ;
}

tag是标记,判断是从左子树回还是从右子树回
...全文
48 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunxiang_2001 2003-10-09
  • 打赏
  • 举报
回复
void postorder(tree *b)
{
tree *stack[100], *p;
int tag[100], top = 0;
p = b;
do
{
while (p)
{
top++;
stack[top] = p;
tag[top] = 0;
p = p->left;
}

p = stack[top];

if (p->right && tag[top] == 0)
{//当右子树不为空且未被访问时进入右子树,并设置其访问标记
p = p->right;
tag[top] = 1;
}
else
{//当右子树为空或者已经被访问过了,就访问当前节点
top--;
printf("%d",p->data);
p = NULL;
}
} while (top != 0);
}
ccz790711 2003-10-09
  • 打赏
  • 举报
回复
中是中程2002年的考题,估计高程不会考吧!!!
玄豹 2003-10-09
  • 打赏
  • 举报
回复
楼主,不是耍我吧?
我可是经受不起折腾!
jjfjszjg 2003-10-09
  • 打赏
  • 举报
回复
to: haiquan81 改成while (p!=0||top!=0)后死循环!
wjltt 2003-10-09
  • 打赏
  • 举报
回复
研究研究
jjfme 2003-10-09
  • 打赏
  • 举报
回复
有些人说这题太简单,但我觉的要融会贯通,举一反三,这题还是有价值的
haiquan81 2003-10-09
  • 打赏
  • 举报
回复
程序只有一个小错误,就是最后的条件应while (p!=0||top!=0) 非while (p!=0&&top!=0)
lixiuyue 2003-10-09
  • 打赏
  • 举报
回复
yunxiang_2001(翔)的算法很好,精练。 kidjoy829()的不但不精练还有些问题没考虑进去!
he_hawk 2003-10-09
  • 打赏
  • 举报
回复
真行呀
kidjoy829 2003-10-09
  • 打赏
  • 举报
回复
对不起,应该是void postorder(tree *b)
{ tree *stack[100],*p;
int tag[100],top=0;
p=b;
do
{ while (p!=0)
{top++;
stack[top]=p;
tag[top]=0;
p=p->left;
}

if (top>0)
{
p=stack[top];
if (tag[top]==1)
{ top--;
printf("%d",p->data);
p=0;
}

else
{p=p->right;
tag[top]=1;
}
}
} while (p!=0||top!=0) ;
}
kidjoy829 2003-10-09
  • 打赏
  • 举报
回复
void postorder(tree *b)
{ tree *stack[100],*p;
int tag[100],top=0;
p=b;
do
{ while (p!=0)
{top++;
stack[top]=p;
tag[top]=0;
p=p->left;
}

if (top>0)
{
p=stack[top];
if (tag[top]==1)
{ top--;
printf("%d",p->data);
p=0;
}
}

else
{p=p->right;
tag[top]=1;
}
}
} while (p!=0||top!=0) ;
}
duanruian 2003-10-09
  • 打赏
  • 举报
回复
这才是对的。为什么书上也有那么多的错误!
he_hawk 2003-10-09
  • 打赏
  • 举报
回复
好象可以了

这些题太高深了

学习
xiahaiqing 2003-10-08
  • 打赏
  • 举报
回复
晕,这是去年中程的题目
Crystal_arrow 2003-10-08
  • 打赏
  • 举报
回复
以前有一年的程序流程图就是考的这个,很有可能 哦





nettman 2003-10-08
  • 打赏
  • 举报
回复
不过有可能改成C++形式来出题!
yhhgirl 2003-10-08
  • 打赏
  • 举报
回复
haha,just kidding!!!

高程这么简单,还叫高程吗???

高程的C一般都会有递归和回溯,

但也可能把后续便利当作题目的一部分来出,非递归和递归相互比较
RichardSong2003 2003-10-08
  • 打赏
  • 举报
回复
这种题是给你送分的
huangxiaoke2000 2003-10-08
  • 打赏
  • 举报
回复
搞笑,高程考这样的题?太小看高程了吧
htsr 2003-10-08
  • 打赏
  • 举报
回复
不会吧
这不是侮辱高程大虾们的智慧么
加载更多回复(11)

2,959

社区成员

发帖
与我相关
我的任务
社区描述
就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
c1认证c4javac4前端 技术论坛(原bbs)
社区管理员
  • 软件水平考试社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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