解释下树的中序遍历函数各个语句干嘛用的

yimingxinshou 2012-08-02 03:52:42
Status InOrderTraverse(BiTree T,Status((* Visit))(TElemType e))
{
InitStack(S);
Push(S,T);
while(!StackEmpty(S))
{
while(GetTop(S,p)&&p)
Push(S,p->lchild);
Pop(S,p);
if(!StackEmpty(S))
{
Pop(S,p);
if(!Visit(p->data))
return ERROR; //尤其return ERROR作用具体点,执行return后接着执行哪一步
Push(S,p->rchild);
}
}
return OK;
}

不用管语法错误,程序我没运行,直接书上抄的,主要介绍下各个语句的作用,尤其return语句,拜托具体点。实在搞不懂它是怎么遍历的
...全文
224 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shijiashabi 2012-08-20
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yimingxinshou 的回复:]

引用 7 楼 的回复:

C/C++ code
//二叉树中序遍历
Status InOrderTraverse(BiTree T,Status((* Visit))(TElemType e))
{
InitStack(S);//初始化栈
Push(S,T);//根指针进栈
while(!StackEmpty(S))//判断栈是否为空
{
while(GetTop(S,p………
[/Quote]函数开始的地方
ForestDB 2012-08-13
  • 打赏
  • 举报
回复
LZ还知道函数的返回么?
DyanWang 2012-08-13
  • 打赏
  • 举报
回复
return就表示程序执行结束,不管返回值具体是什么,就结束该程序或者函数
yimingxinshou 2012-08-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

C/C++ code
//二叉树中序遍历
Status InOrderTraverse(BiTree T,Status((* Visit))(TElemType e))
{
InitStack(S);//初始化栈
Push(S,T);//根指针进栈
while(!StackEmpty(S))//判断栈是否为空
{
while(GetTop(S,p……
[/Quote]
if(!Visit(p->data))//对p指向的结点执行visit函数
return ERROR; //return后就不执行了,返回入口地址
返回入口地址是返回哪儿啊?
titer1 2012-08-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

中序遍历是指左根右的遍历顺序
[/Quote]

精辟,

还有为什么不看看 严奶奶 的那个模拟软件呵呵。。
yimingxinshou 2012-08-11
  • 打赏
  • 举报
回复
谁来讲一下数的遍历过程啊,函数是怎么实现的?别光说些有的没的
shijiashabi 2012-08-11
  • 打赏
  • 举报
回复
先将根指针进栈,再向左走,一直走到头,此时栈顶为空指针,然后将空指针出栈,然后将最左一个节点出栈,再向右走一步,继续向左走到头,如此往复,直至栈空
shijiashabi 2012-08-11
  • 打赏
  • 举报
回复
//二叉树中序遍历
Status InOrderTraverse(BiTree T,Status((* Visit))(TElemType e))
{
InitStack(S);//初始化栈
Push(S,T);//根指针进栈
while(!StackEmpty(S))//判断栈是否为空
{
while(GetTop(S,p)&&p)
Push(S,p->lchild);//左孩子进栈 向左走到头
Pop(S,p);//出栈
if(!StackEmpty(S))//判断栈是否为空
{
Pop(S,p);//出栈
if(!Visit(p->data))//对p指向的结点执行visit函数
return ERROR; //return后就不执行了,返回入口地址
Push(S,p->rchild);//右孩子进栈 向右走
}
}
return OK;//调用结束返回
}
yimingxinshou 2012-08-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
error 定义的是错误吧 一般不会执行到这步的
[/Quote]
教材上是这样写的
shijinpeng_2012 2012-08-02
  • 打赏
  • 举报
回复
error 定义的是错误吧 一般不会执行到这步的
赵4老师 2012-08-02
  • 打赏
  • 举报
回复
用堆栈模拟递归实现而已。
MC_LoveX 2012-08-02
  • 打赏
  • 举报
回复
中序遍历是指左根右的遍历顺序
MC_LoveX 2012-08-02
  • 打赏
  • 举报
回复
return之后函数就返回了 不执行了 不存在执行return后接着执行哪一步
1 / 3(一) 大纲_Python 基础(3 天×6h) 课时:18 小时(6 小时×3 天)课程简介 本课程从零基础开始介绍 Python 编程知识,快速入门 Python 语言基础,循序渐进地掌握 Python 模块的构建和 Python 程序的代码的基本功能的实现。学员基础  了解计算机基本操作,掌握一般文字输入和处理的基础知识 了解计算机软件,硬件等基本概念课程目标  全面认识 Python,包括语言特点、应用领域、安装与执行原理、集成开发环境的使用等 掌握 Python 的基础语法,实现简单的程序编写 熟练使用 Python 的各种数据结构,掌握各自的适用场景 熟练使用模块和包,理解使用模块的好处,在工作中灵活借助模块实现需求课程内容 Python 概述及开发环境搭建 1.1 Python 应用领域 1.2 常见编程语言特点  Python 语言特点 面向对象与面向过程 编译型与解释型1.3 Python IDE 集成开发环境  PyCharm 安装及配置 Python 编程语言基础 2.1 库、包、模块 2.2 变量的定义及命名规范 2.3 书写规范 2.4 命名规范 2.5 运算符  算数运算符、逻辑运算符、赋值运算符、比较运算符、成员运算符、身份运算符2 / 3 运算符优先级 流程控制 3.1 流程控制语句结构 3.2 分支结构 if else 的语法结构及应用场景  多条件判断3.3 循环语句  for 语句 while 语句 嵌套循环 循环控制语句 跳出循环 常用数据类型及其函数 4.1 字符串 str 4.2 整数 int、浮点小数 float 4.3 布尔型 bool 4.4 列表 list  数值列表 range 数值列表转列表:list 函数 遍历列表 列表解析4.5 元组 tuple 4.6 字典 dict 4.7 集合 set 4.8 切片 4.9 在列表中存储字典 4.10 在字典中存储列表、字典 4.11 高级数据类型的运算 4.12 案例演练  练习:登录验证3 / 3 练习:遍历元组 练习:遍历集合 练习:while 循环列表 函数 5.1 函数的定义和作用  定义函数规范 调用函数5.2 函数的参数和返回值 5.3 局部变量与全部变量 5.4 位置参数与关键字参数 5.5 缺省参数与多值参数 5.6 数据的不可变类型与可变类型 5.7 常用内置函数  输出输入函数:print、input dir 函数 包与模块 6.1 了解库、包、模块 6.2 模块的导入方式  导入整个模块(.py) 导入模块中的函数 自定义模块的导入与应用6.3 定义别名 6.4 了解与制作包  导入包的方式6.5 常用标准库  time:日期时间计算 os:文件和目录处理

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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