#include <iostream>
using namespace std;
struct Tree {
int val;
Tree* left;
Tree* right;
};
void preTree(Tree* T)
{
if (T == NULL) return;
else {
cout << T->val << " ";
preTree(T->left);
preTree(T->right);
}
}
void creatTree(Tree** T)
{
int n;
cin >> n; // 输入当前节点的值,0代表NULL。
if (n == 0)
{
*T = NULL; // 设置实际的指针为NULL
return;
}
else {
*T = new Tree(); // 创建新节点
(*T)->val = n;
(*T)->left = NULL; // 初始化左子树为NULL
(*T)->right = NULL; // 初始化右子树为NULL
creatTree(&((*T)->left)); // 递归创建左子树
creatTree(&((*T)->right)); // 递归创建右子树
}
}
int main() {
Tree* root = new Tree(); // 创建根节点并初始化
root->left = NULL; // 初始化左子树为NULL
root->right = NULL; // 初始化右子树为NULL
creatTree(&root); // 创建整棵树
preTree(root); // 先序遍历
return 0;
}
二叉树快速前序创建和前序读取
于 2024-05-07 18:50:55 首次发布