免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: pz0513
打印 上一主题 下一主题

[算法] 09年计算机考研统考试题第3题 数据结构 二叉树遍历的问题! [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
11 [报告]
发表于 2009-12-09 18:09 |只看该作者
……这是哪个学校的题目啊

论坛徽章:
0
12 [报告]
发表于 2009-12-09 19:51 |只看该作者

回复 #11 kmindg 的帖子

看标题“考研统考”。。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
13 [报告]
发表于 2009-12-09 20:13 |只看该作者
原帖由 pz0513 于 2009-12-9 19:51 发表
看标题“考研统考”。。


……

论坛徽章:
0
14 [报告]
发表于 2009-12-10 09:42 |只看该作者

回复 #4 youshuang 的帖子

照这么说,得先弄清RNL的定义是啥才好。。。

论坛徽章:
0
15 [报告]
发表于 2009-12-25 09:18 |只看该作者
这道题应该不是考那种常用的遍历算法(LRN LNR NLR)!考的是遍历的思想,这样算也是一种RNL,不应该用常用LNR对比来算的这个遍历(我算了几种都是错了)!

论坛徽章:
0
16 [报告]
发表于 2009-12-25 10:26 |只看该作者

题目没错,答案也没错

非常明显的RNL(或者叫RDL)递归遍历二叉树。(还是仔细看看数据结构中树的遍历吧)
typedef struct BiTNode {
    TElemType data;//节点数据

    struct BiTNode *lchild, *rchild;//左右孩子指针

}BiTNode, *BiTree;

Status RDLTraverse(BiTree T, Status(* Visit)(TElemType e)){
//采用二叉链表存储结构,Visit是对数据元素操作的应用函数,

//RDL遍历二叉树T的递归算法,对每个数据元素调用函数Visit。

//最简单的Visit函数是:

//    Status PrintElement(TElemType e){  //输出元素e的值

//         printf(e);

//             return OK;

//    }

//调用实例:RDLTraverse(T, PrintElement);

  if(T) {
    if(Visit(T->rchild,Visit))
      if(RDLTraverse(T->data,Visit))
        if(RDLTraverse(T->lchild,Visit))   return OK;
    return ERROR;
  }else return OK;
}


以上是RNL遍历二叉树的递归算法。

论坛徽章:
0
17 [报告]
发表于 2009-12-25 13:44 |只看该作者
竟然不能删除

[ 本帖最后由 iLRainyday 于 2009-12-25 13:54 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP