Я пытаюсь напечатать все уникальные элементы заданного массива, используя двоичное дерево поиска.Печать всех уникальных элементов массива
Что я делаю:
- Входные все числа в массиве.
- Поиск для каждого элемента массива один за другим, в BST,
- если (элемент не найден в BST)
- его туда и распечатать его
- еще
- перейти к следующему элементу
- если (элемент не найден в BST)
#include<stdlib.h>
#include<stdio.h>
struct node
{
int data;
struct node* left;
struct node* right;
} *root = NULL;
void insert(struct node *n, int value)
{
if (n == NULL)
{
n = (struct node*)malloc(sizeof(struct node));
n->data = value;
n->left = NULL;
n->right = NULL;
printf("%d ", value);
return;
}
if ((n->data) == value)
return;
if ((n->data) > value)
insert(n->left, value);
else
insert(n->right, value);
}
int main()
{
int a[100], i, n;
printf("Enter the number of elements : ");
scanf("%d",&n);
for (i = 0; i < n; i++)
scanf("%d",&a[i]);
printf("After removal of duplicates, the new list is : \n");
for (i = 0; i < n; i++)
insert(root, a[i]);
printf("\n");
return 0;
}
И каков ваш вопрос? – SBI