本题目构造一棵二叉检索树。要求读入n个整数,以0结束。最后输出这棵树的先序序列。
输入n个整数,以0表示结束,数据间以空格隔开。
输出这棵树的先序序列,以一个空格隔开,结尾也有一个空格。
34 50 23 12 30 23 0 结尾无空行
34 23 12 23 30 50 结尾无空行
#include<bits/stdc++.h> using namespace std; struct BSTree { int data; BSTree* left; BSTree* right; }; void insert_Node(BSTree* &root,int n) { if(root==NULL) { root = new BSTree(); root->data=n; root->left=NULL; root->right=NULL; } else { if(n<=root->data) { insert_Node(root->left,n); } else { insert_Node(root->right,n); } } } void preOder(BSTree* root) { if(root==NULL) { return; } else { cout<<root->data<<" "; preOder(root->left); preOder(root->right); } } int main() { BSTree* root=NULL; int n; cin>>n; while(n!=0) { insert_Node(root,n); cin>>n; } preOder(root); return 0; }