21xrx.com
2024-09-20 00:52:38 Friday
登录
文章检索 我的文章 写文章
C++实现树的遍历输出
2023-06-22 21:53:29 深夜i     --     --
C++ 遍历 输出 实现

C ++是一种面向对象的编程语言,广泛应用于各种应用程序的开发。其中,实现树的遍历输出,是一种很重要的功能。在这篇文章中,我们将探讨如何使用C++实现树的遍历输出。

树是一种非常常见的数据结构,它由一个根节点和一些子节点组成。每个节点都可以包含一个值和指向其子节点的指针。

为了遍历树,我们需要使用一种特定的算法来按照一定的顺序依次访问每个节点。下面是三种常见的遍历算法:

1.先序遍历

先访问根节点,再按照从左到右的顺序依次访问左子树和右子树。

2.中序遍历

按照从左到右的顺序先访问左子树,再访问根节点,最后访问右子树。

3.后序遍历

按照从左到右的顺序先访问左子树,再访问右子树,最后访问根节点。

现在,我们来看一个简单的例子,演示如何使用C++实现树的先序遍历输出。

首先,我们定义一个树节点的结构体,包含节点值、左子树和右子树指针:


struct TreeNode{

  int val;

  TreeNode* left;

  TreeNode* right;

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

};

接下来,我们定义一个函数来实现先序遍历输出:


void preOrder(TreeNode* root){

  if(root == nullptr)

    return;

  

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

  preOrder(root->left);

  preOrder(root->right);

}

这个函数接受一个根节点指针作为参数,通过递归实现先序遍历输出。在递归调用过程中,首先输出当前节点的值,然后按照先访问左子树,再访问右子树的顺序依次遍历每一个节点。

现在,我们来创建一个二叉树,并使用刚才定义的函数打印它的先序遍历结果:


int main(){

  TreeNode* root = new TreeNode(1);

  root->left = new TreeNode(2);

  root->right = new TreeNode(3);

  root->left->left = new TreeNode(4);

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

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

  root->right->right = new TreeNode(7);

  preOrder(root);

  return 0;

}

上述代码首先创建了一个二叉树,然后调用preOrder函数打印出了先序遍历结果:1 2 4 5 3 6 7。

通过这个简单的例子,我们可以看到,C++实现树的遍历输出并不难。只需定义一个树节点的结构体和遍历函数,然后在递归过程中按照特定的顺序遍历每一个节点即可。

  
  

评论区

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