21xrx.com
2024-12-23 01:47:30 Monday
登录
文章检索 我的文章 写文章
C++代码-二叉树前序遍历
2023-06-22 12:30:22 深夜i     --     --
C++ 二叉树 前序遍历 代码

二叉树是一种数据结构,它由根节点和两个子树(左子树和右子树)组成。二叉树具有许多优点,例如它可以用作搜索树或平衡树等。

在二叉树中,前序遍历是指从根节点开始,先访问根节点,然后按照左子树-右子树的顺序遍历整个树。以下是C++代码实现了二叉树前序遍历。


#include<iostream>

using namespace std;

struct TreeNode {

  int val;

  TreeNode* left;

  TreeNode* right;

  TreeNode(int x) : val(x), left(NULL), right(NULL) {}

};

class Solution {

public:

  vector<int> ans;

  void preOrder(TreeNode* root) {

    if (root == NULL) return;

    ans.push_back(root->val);

    preOrder(root->left);

    preOrder(root->right);

  }

  vector<int> preorderTraversal(TreeNode* root) {

    preOrder(root);

    return ans;

  }

};

int main() {

  Solution solution;

  TreeNode *root = new TreeNode(1);

  root->right = new TreeNode(2);

  root->right->left = new TreeNode(3);

  vector<int> ans = solution.preorderTraversal(root);

  for (int i = 0; i < ans.size(); i++) {

    cout << ans[i] << " ";

  }

  return 0;

}

上述代码中,我们定义了一个`TreeNode`结构体,它代表二叉树节点,其中`val`是节点的值,`left`和`right`分别表示左子树和右子树。接下来,我们定义了一个`Solution`类,其中包含了一个`preOrder`方法,它用于实现二叉树前序遍历。

在`preOrder`方法中,我们首先判断当前节点是否为空,如果为空则直接返回;否则,我们将当前节点的值加入到答案数组`ans`中,并先遍历左子树,再遍历右子树。最后,我们定义了一个`preorderTraversal`方法,它调用`preOrder`方法实现前序遍历,并返回答案数组`ans`。

在`main`函数中,我们创建了一棵二叉树,并使用`preorderTraversal`方法实现了二叉树的前序遍历。最后,我们遍历答案数组并输出结果。

以上就是C++代码实现二叉树前序遍历的内容。二叉树是一种非常有用且常见的数据结构,对于程序员来说,掌握二叉树的遍历算法是非常重要的。如果您正在学习C++或准备参加C++编程面试,那么这篇文章将对您有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复