5 практика
.pdf//вывод потомков и предка элемента scanf("%d", &n1);
node *x = find(&t, n1); if(x==NULL)
{
printf("-");
printf("\n");
}
else
{
if (x->parent != NULL)
{
printf("%d", x->parent->value); printf(" ");
}
else
{
printf("_ ");
}
if(x->left)
{
printf("%d", x->left->value);
31
}
else
{
printf("_");
}
printf(" "); if(x->right)
{
printf("%d", x->right->value);
}
else
{
printf("_");
}
printf("\n");
}
printf("\n");
scanf("%d", &n2); x = find(&t, n2);
if(x==NULL)
{
32
printf("-");
printf("\n");
}
else
{
if (x->parent != NULL)
{
printf("%d", x->parent->value); printf(" ");
}
else
{
printf("_ ");
}
if(x->left)
{
printf("%d", x->left->value);
}
else
{
printf("_");
}
33
printf(" "); if(x->right)
{
printf("%d", x->right->value);
}
else
{
printf("_");
}
printf("\n");
}
printf("\n");
//удаление элемента scanf("%d", &n1); remove_node(&t, n1); print_tree(&t); printf("\n");
//левые вращения node* troot = rootret(&t); if (troot != NULL)
34
{
while (troot->right != NULL)
{
rotate_root_left(&t); troot = rootret(&t);
}
}
printf("\n"); print_tree(&t);
//правые вращения troot = rootret(&t); if(troot != NULL)
{
while (troot->left != NULL)
{
rotate_root_right(&t); troot = rootret(&t);
}
}
printf("\n"); print_tree(&t);
35
printf("\n");
node* k = rootret(&t); print_levelbeztire(k, 1, 1, 0); printf(" "); print_levelbeztire(k, 1, 2, 0); printf("\n");
//кол-во элементов printf("\n"); print_num(&t); printf("\n\n");
//очистка дерева clean(&t);
troot = rootret(&t); print_tree(&t); return 0;
}
36