二叉树遍历递归算法详解
二叉树遍历是指按照某种顺序访问二叉树中的所有结点,并且每个结点仅访问一次。常见的二叉树遍历方式有先序遍历、中序遍历、后序遍历和层序遍历。
递归算法是实现二叉树遍历的常用方法。具体算法如下:
1. 先序遍历
先访问根结点,然后先序遍历左子树,最后先序遍历右子树。
void preOrder(TreeNode* root) {
if(root == NULL) return;
cout << root->val << " ";
preOrder(root->left);
preOrder(root->right);
}
2. 中序遍历
先中序遍历左子树,然后访问根结点,最后中序遍历右子树。
void inOrder(TreeNode* root) {
if(root == NULL) return;
inOrder(root->left);
cout << root->val << " ";
inOrder(root->right);
}
3. 后序遍历
先后序遍历左子树,然后后序遍历右子树,最后访问根结点。
void postOrder(TreeNode* root) {
if(root == NULL) return;
postOrder(root->left);
postOrder(root->right);
cout << root->val << " ";
}
4. 层序遍历
从上往下,从左往右依次访问每个结点。
void levelOrder(TreeNode* root) {
if(root == NULL) return;
queue<TreeNode*> q;
q.push(root);
while(!q.empty()) {
TreeNode* cur = q.front();
q.pop();
cout << cur->val << " ";
if(cur->left) q.push(cur->left);
if(cur->right) q.push(cur->right);
}
}
二叉树的遍历及应用实验报告
以上就是二叉树遍历递归算法的详细解释,通过以上方法,可以对二叉树进行有效的遍历。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论