#include <iostream>
#include <cstdio>
using namespace std;
typedef int ElementType;
struct TreeNode {
ElementType data;
TreeNode *leftChild;
TreeNode *rightChild;
TreeNode(ElementType c) {
this->data = c;
this->leftChild = nullptr;
this->rightChild = nullptr;
}
};
/**
* 插入结点,并输出结点对应的父节点的数据域
* @param root
* @param x
* @return
*/
TreeNode *insert(TreeNode *root, ElementType x, ElementType fatherData);
/**
* 二叉排序树--华中科技大学
* @return
*/
int main() {
int n;
while (cin >> n) {
TreeNode *root = nullptr;
for (int i = 0; i < n; ++i) {
int x;
cin >> x;
/*
* 根节点没有父节点,所以起始传入-1
*/
root = insert(root, x, -1);
}
}
return 0;
}
TreeNode *insert(TreeNode *root, ElementType x, ElementType fatherData) {
if (root == nullptr) {
/*
* 创建新结点
*/
root = new TreeNode(x);
cout << fatherData << endl;
} else if (x < root->data) {
/*
* 插入到左子树,fatherData即是root的data
*/
root->leftChild = insert(root->leftChild, x, root->data);
} else if (x > root->data) {
/*
* 插入到右子树,fatherData即是root的data
*/
root->rightChild = insert(root->rightChild, x, root->data);
}
return root;
}