c++层序遍历二叉树
作者:野牛程序员:2023-11-26 11:09:09 C++阅读 2736
层序遍历二叉树可以使用队列来实现。以下是一个 C++ 示例代码,演示了如何进行层序遍历:
#include <iostream> #include <queue> // 二叉树节点的定义 struct TreeNode { int data; TreeNode* left; TreeNode* right; TreeNode(int val) : data(val), left(nullptr), right(nullptr) {} }; // 层序遍历函数 void levelOrderTraversal(TreeNode* root) { if (root == nullptr) return; // 使用队列来存储待访问的节点 std::queue<TreeNode*> q; q.push(root); while (!q.empty()) { // 取出队首节点 TreeNode* current = q.front(); q.pop(); // 访问当前节点 std::cout << current->data << " "; // 将当前节点的左右子节点加入队列 if (current->left != nullptr) { q.push(current->left); } if (current->right != nullptr) { q.push(current->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); // 进行层序遍历 levelOrderTraversal(root); return 0; }
请注意,这只是一个简单的例子,实际应用中可以根据需要调整数据结构和遍历逻辑。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:arduino dht11库文件
- 下一篇:c语言矩阵转置函数