第三章 -- 分层遍历二叉树
来源:互联网 发布:淘宝几天自动确认收货? 编辑:程序博客网 时间:2024/06/07 17:48
1.给定一棵二叉树,要求按分层遍历该二叉树,即从上到下按层次访问该二叉树(每一层将单独输出一行)。PrintNodeByLevel(Node *root)
2.另外写一个函数,打印二叉树中某层次的节点(从左到右),其中根节点为第0层,函数原型为PrintNodeAtLevel(Node *root, int level),成功返回1,失败返回0。
如果解决了第二个问题,则问题1可采用问题2的解法来依次遍历其各层次节点,先考虑问题2的解法。
假设要访问二叉树中第k层的节点,那么其实可以把它转换成分别访问“以该二叉树根节点的左右子节点为根节点的两棵子树”中层次为k-1的节点。
struct Node{ int data; Node *lchild; Node *rchild;};// 递归算法求出第level层中的节点,成功返回1,失败返回0 int PrintNodeAtLevel(Node *root, int level){ if(root==NULL||level<0) return 0; if(level==0) { cout<<root->data<<endl; return 1; } else return PrintNodeAtLevel(root->lchild, level-1)+PrintNodeAtLevel(root->rchild, level-1);}// 利用PrintNodeAtLevel和深度depth求解PrintNodeByLevel(层次遍历) int PrintNodeByLevel(Node *root, int depth){ for(int level=0;level<depth;level++) PrintNodeAtLevel(root, level); return 0;} // 直接利用PrintNodeAtLevel函数的返回值 int PrintNodeByLevel(Node *root){ for(int level=0;;level++) { if(!PrintNodeAtLevel(root, level)) break; } return 0;}
- 第三章 -- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 二叉树遍历、分层遍历
- J. Pie 典型的二分求解
- Apache出现 You don't have permission to access /phpmyadmin/ on this server. 解决办法
- HTML表格细线代码
- Scintilla控件在Win32环境下的使用(一)
- You don't have permission to access /blog/wp-admin/options.php
- 第三章 -- 分层遍历二叉树
- 钛备份 - Titanium Backup ★ root 6.1.5.2 专业版 ( 免 key/license )
- C语言除法运算符“/”和求余运算符“%”
- 机房收费系统之上机、下机
- INC在汇编语言中
- 为什么要用SSH?
- 大话Session (转)
- vimrc备用
- 散热器问题一则