当前位置: 首页 > wzjs >正文

国家林业建设工程协会网站lamp网站开发架构经验

国家林业建设工程协会网站,lamp网站开发架构经验,网站只做程序员,济南最好的网站制作公司哪家好二叉树遍历教学:理解三种递归遍历方式 一、二叉树的基本概念 1.二叉树是每个节点最多有两个子节点的树结构,称为: 左子树(left subtree) 右子树(right subtree) 2.五种基本形态&#x…

二叉树遍历教学:理解三种递归遍历方式

一、二叉树的基本概念

1.二叉树是每个节点最多有两个子节点的树结构,称为:

左子树(left subtree)        右子树(right subtree)

2.五种基本形态:

                                                                     

  1. 空二叉树            只有根节点         只有左子树                只有右子树            完整的左右子树

二、二叉树的三种递归遍历

核心区别在于访问根节点的时机

遍历方式访问顺序记忆口诀
先序遍历根 → 左 → 右根左右
中序遍历左 → 根 → 右左根右
后序遍历左 → 右 → 根左右根
1. 先序遍历(Pre-order)

访问顺序:根节点 → 左子树 → 右子树

void preOrderTravl(int root) {if(root == 0) return;  // 递归终止条件cout << tree[root].v << " ";  // 1. 访问根preOrderTravl(tree[root].left);  // 2. 遍历左子树preOrderTravl(tree[root].right); // 3. 遍历右子树
}

示例
输入树:

    A/ \B   C/ \   \
D   E   F/ \   /G   H I

输出:A B D E G H C F I

2. 中序遍历(In-order)

访问顺序:左子树 → 根节点 → 右子树

void inOrderTravl(int root) {if(root == 0) return;inOrderTravl(tree[root].left);  // 1. 遍历左子树cout << tree[root].v << " ";    // 2. 访问根inOrderTravl(tree[root].right); // 3. 遍历右子树
}

示例
输入表达式树:

     */   \+     -/ \   / \
a   b c   d

输出:a + b * c - d (中缀表达式)

3. 后序遍历(Post-order)

访问顺序:左子树 → 右子树 → 根节点

void postOrderTravl(int root) {if(root == 0) return;postOrderTravl(tree[root].left);  // 1. 遍历左子树postOrderTravl(tree[root].right); // 2. 遍历右子树cout << tree[root].v << " ";      // 3. 访问根
}

示例
输入表达式树:

     */   \+     -/ \   / \
a   b c   d

输出:a b + c d - * (后缀表达式/逆波兰式)

三、遍历的递归本质

所有遍历都遵循相同的递归框架:

void traverse(int root) {if(root == 0) return; // 递归基// 位置1:先序访问点traverse(左子树);// 位置2:中序访问点traverse(右子树);// 位置3:后序访问点
}
四、遍历的应用场景
遍历方式典型应用场景
先序遍历复制二叉树、前缀表达式
中序遍历二叉搜索树排序、中缀表达式
后序遍历释放二叉树内存、后缀表达式计算
五、思考题

给定二叉树:

    A/ \B   C/   / \
D   E   F

请写出:

  1. 先序结果:A B D C E F

  2. 中序结果:D B A E C F

  3. 后序结果:D B E F C A

http://www.dtcms.com/wzjs/837736.html

相关文章:

  • 做网站学的什么专业网站建设作业过程
  • 俄语网站模板玛丁图商城网站开发
  • 方城网站制作郑州外贸建站
  • 罗湖实惠的网站建设费用网站建设流程表
  • 淘宝客 网站选择WORDPRESS青岛网
  • 前几年做那个网站能致富便捷网站建设费用
  • 中文版的wordpressseo软件推广
  • 农村网站建设茂名360地图怎么添加商户
  • 建网站的程序免费如何做美食网站设计
  • 淄博网站设计丨致信网络推广方案应该有哪些方面
  • 网站开发技术 文库一个阿里云怎么做两个网站
  • 玉林网站建设公司专业做ppt的网站
  • 网站图片是用什么软件做的穆棱市住房和城乡建设局网站
  • 建购物网站难吗明快网站设计
  • 临沂网站域名.net 网站管理系统
  • 福永网站建设公司哪家好台州知名的网站建设
  • 新云网站模版dede做的网站打不开
  • 做网站的人叫什么软件做软件赚钱吗
  • 论坛源码有哪些吉安seo招聘
  • 学校网站要求上海公司注册网上申请
  • 凡科论坛网站制作石家庄货运做网站公司
  • 海淀区手机网站设计服务6科技基金
  • 网站开发价格多少新乡做网站费用
  • 河北省网站备案系统网站构成三要素
  • 重庆做手机网站建设平面设计是做什么的啊
  • 网站建设都需要哪些工具或软件iis6无法新建网站
  • 做微信商城网站深圳市住建局造价站
  • 一个ip地址做多个网站黑龙江 俄语网站制作
  • 昆明网站定制开发深圳公司招聘网最新招聘信息
  • 上海哪家做网站关键词排名康复中心网站建设方案