Вы должны l oop и вставлять любой новый узел как оставить в BST. Стандартная функция вставки в BST будет следующей:
предположим, что вы объявляете свое дерево root как binary_search_tree *t = new_binary_search_tree();
, вы можете прочитать свой ввод как -
int EmployeeID;
scanf("%d",&EmployeeID);
float salary;
scanf("%d",&salary);
Затем вы можете создать новый узел -
node* n = new_node(EmployeeID,salary);
и передать его в функцию вставки ниже.
void insert(binary_search_tree *t, node *n) {
node *y = NULL;
node *temp = t->root;
while(temp != NULL) {
y = temp;
if(n->data < temp->data)
temp = temp->left;
else
temp = temp->right;
}
n->parent = y;
if(y == NULL) //newly added node is root
t->root = n;
else if(n->data < y->data)
y->left = n;
else
y->right = n;
}
Функция new_node будет иметь вид -
node* new_node(int emp_id,float sal) {
node *n = malloc(sizeof(node));
n->EmployeeID= emp_id;
n->salary= sal;
n->left = NULL;
n->right = NULL;
n->parent = NULL;
return n;
}
Это вставит новый узел как листовой узел в ваш BST. Вы можете использовать этот фрагмент в качестве справки и соответствующим образом изменить.