【PTA数据结构 | C语言版】前序遍历二叉树
本专栏持续输出数据结构题目集,欢迎订阅。
文章目录
- 题目
- 代码
题目
请编写程序,创建一棵有 3 个结点的二叉树,并输出其前序遍历序列。
输入格式:
输入给出 3 个整数,依次为二叉树根结点的左孩子、右孩子、根结点本身存储的键值。
输出格式:
输出二叉树的前序遍历序列,每个数字占一行。
输入样例:
1 2 3
输出样例:
3
1
2
代码
#include <stdio.h>
#include <stdlib.h>typedef struct TreeNode {int data;struct TreeNode* left;struct TreeNode* right;
} TreeNode;TreeNode* createNode(int data) {TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));node->data = data;node->left = NULL;node->right = NULL;return node;
}// 前序遍历函数:根->左->右
void preOrderTraversal(TreeNode* root) {if (root == NULL) return;printf("%d\n", root->data); // 访问根节点preOrderTraversal(root->left); // 递归遍历左子树preOrderTraversal(root->right); // 递归遍历右子树
}int main() {int leftData, rightData, rootData;scanf("%d %d %d", &leftData, &rightData, &rootData);// 创建三个节点TreeNode* root = createNode(rootData);TreeNode* leftChild = createNode(leftData);TreeNode* rightChild = createNode(rightData);// 构建树结构root->left = leftChild;root->right = rightChild;// 执行前序遍历preOrderTraversal(root);return 0;
}