21xrx.com
2024-11-05 18:28:21 Tuesday
登录
文章检索 我的文章 写文章
C++树的遍历输出
2023-07-03 18:28:35 深夜i     --     --
C++ 遍历 输出

C++树的遍历输出是指以特定的方式遍历树结构,并将其中的节点数据输出。在C++中,常见的树遍历方式有前序遍历、中序遍历和后序遍历。

前序遍历是从根节点开始,遍历整棵树的方式,依次输出当前节点的数据。具体实现可以采用递归或非递归方式。其中,递归方式实现较为简单,可以通过如下代码实现:


void preorderTraversal(TreeNode* root) {

  if (root == nullptr)

    return;

  

  // 输出当前节点

  cout << root->val << " ";

  // 遍历左子树

  preorderTraversal(root->left);

  // 遍历右子树

  preorderTraversal(root->right);

}

中序遍历是从根节点开始,先遍历左子树,再输出当前节点数据,最后遍历右子树。同样可以采用递归或非递归方式实现。递归方式实现如下:


void inorderTraversal(TreeNode* root) {

  if (root == nullptr)

    return;

  

  // 遍历左子树

  inorderTraversal(root->left);

  // 输出当前节点

  cout << root->val << " ";

  // 遍历右子树

  inorderTraversal(root->right);

}

后序遍历是从根节点开始,先遍历左子树,再遍历右子树,最后输出当前节点数据。同样也可以采用递归或非递归方式实现。递归方式实现如下:


void postorderTraversal(TreeNode* root) {

  if (root == nullptr)

    return;

  

  // 遍历左子树

  postorderTraversal(root->left);

  // 遍历右子树

  postorderTraversal(root->right);

  // 输出当前节点

  cout << root->val << " ";

}

除此之外,还有层序遍历、深度优先遍历等其他方式可以遍历树结构,并将其中的节点数据输出。对于不同的情况和需求,可以选择不同的遍历方式来实现相应的功能。

  
  

评论区

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