PTA查找—构造二叉检索树

构造二叉检索树

本题目构造一棵二叉检索树。要求读入n个整数,以0结束。最后输出这棵树的先序序列。

输入格式:

输入n个整数,以0表示结束,数据间以空格隔开。

输出格式:

输出这棵树的先序序列,以一个空格隔开,结尾也有一个空格。

输入样例:

34 50 23 12 30 23 0
结尾无空行

输出样例:

34 23 12 23 30 50 
结尾无空行

AC代码:

#include
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;
}

你可能感兴趣的:(算法,数据结构)