软考
APP下载

二叉树的遍历数据结构代码

二叉树是一种重要的数据结构,它可以帮助我们在计算机科学中解决许多问题。在二叉树中,每个节点都有两个子节点,我们可以通过不同的方式遍历这些节点。这篇文章将从多个角度介绍二叉树的遍历数据结构代码。

一、先序遍历

先序遍历是二叉树中最简单的一种遍历方式。在先序遍历中,我们首先访问根节点,然后递归遍历左子树和右子树。以下是先序遍历的代码示例:

```

void preOrderTraversal(TreeNode* root) {

if (root == nullptr) {

return;

}

cout << root->val << endl;

preOrderTraversal(root->left);

preOrderTraversal(root->right);

}

```

二、中序遍历

中序遍历是另一种常用的遍历方式,在中序遍历中,我们首先递归遍历左子树,然后访问根节点,最后递归遍历右子树。以下是中序遍历的代码示例:

```

void inOrderTraversal(TreeNode* root) {

if (root == nullptr) {

return;

}

inOrderTraversal(root->left);

cout << root->val << endl;

inOrderTraversal(root->right);

}

```

三、后序遍历

后序遍历也是一个重要的遍历方式,在后序遍历中,我们首先递归遍历左子树和右子树,然后访问根节点。以下是后序遍历的代码示例:

```

void postOrderTraversal(TreeNode* root) {

if (root == nullptr) {

return;

}

postOrderTraversal(root->left);

postOrderTraversal(root->right);

cout << root->val << endl;

}

```

四、层次遍历

层次遍历是一种广泛使用的遍历方式,它可以逐层遍历树的节点。在层次遍历中,我们使用队列来存储节点,逐层遍历每个节点的左子树和右子树。以下是层次遍历的代码示例:

```

void levelOrderTraversal(TreeNode* root) {

if (root == nullptr) {

return;

}

queue nodeQueue;

nodeQueue.push(root);

while (!nodeQueue.empty()) {

TreeNode* node = nodeQueue.front();

nodeQueue.pop();

cout << node->val << endl;

if (node->left != nullptr) {

nodeQueue.push(node->left);

}

if (node->right != nullptr) {

nodeQueue.push(node->right);

}

}

}

```

备考资料 免费领取:软件设计师报考指南+考情分析+思维导图等 立即下载
真题演练 精准解析历年真题,助你高效备考! 立即做题
相关阅读
软件设计师题库