Составители:
Рубрика:
Found = true;
else if (A < ElementX->Value)
ElementX = ElementX->Left;
else
ElementX = ElementX->Right;
}
if (Found)
return ElementX;
X *NewX; // Создание нового узла
NewX = (X *)malloc(sizeof(X));
NewX->Value = A;
NewX->Left = 0;
NewX->Right = 0;
if (A < Prev->Value) // Присоединение к левому поддереву
Prev->Left = NewX;
else // Иначе присоединение к правому поддереву
Prev->Right = NewX;
return NewX;
}
Для обхода дерева удобнее всего воспользоваться рекурсивной функции. Исход-
ный код такой функции будет приведен далее при изучении соответствующей темы. В
данном примере для вывода воспользуемся обычной функцией. В этом случае все пере-
движение по
дереву приходиться делать вручную, от его корня:
void PrintTree(X *Root)
{
X *p=Root;
//Корень дерева
printf("Main Root\t%d\n",p->Value);
//Левое поддерево
p=p->Left;
printf("Left Root\t%d\n",p->Value);
p=p->Left;
printf("Left Tree:\t%d",p->Value);
p=Root;
p=p->Left;
p=p->Right;
printf(" %d\n",p->Value);
//Правое поддерево
p=Root;
p=p->Right;
printf("Right Root\t%d\n",p->Value);
p=p->Left;
printf("Right Tree:\t%d",p->Value);
p=p->Right;
printf(" %d",p->Value);
p=Root;
p=p->Right;
p=p->Right;
printf(" %d\n",p->Value);
}
74
Found = true;
else if (A < ElementX->Value)
ElementX = ElementX->Left;
else
ElementX = ElementX->Right;
}
if (Found)
return ElementX;
X *NewX; // Создание нового узла
NewX = (X *)malloc(sizeof(X));
NewX->Value = A;
NewX->Left = 0;
NewX->Right = 0;
if (A < Prev->Value) // Присоединение к левому поддереву
Prev->Left = NewX;
else // Иначе присоединение к правому поддереву
Prev->Right = NewX;
return NewX;
}
Для обхода дерева удобнее всего воспользоваться рекурсивной функции. Исход-
ный код такой функции будет приведен далее при изучении соответствующей темы. В
данном примере для вывода воспользуемся обычной функцией. В этом случае все пере-
движение по дереву приходиться делать вручную, от его корня:
void PrintTree(X *Root)
{
X *p=Root;
//Корень дерева
printf("Main Root\t%d\n",p->Value);
//Левое поддерево
p=p->Left;
printf("Left Root\t%d\n",p->Value);
p=p->Left;
printf("Left Tree:\t%d",p->Value);
p=Root;
p=p->Left;
p=p->Right;
printf(" %d\n",p->Value);
//Правое поддерево
p=Root;
p=p->Right;
printf("Right Root\t%d\n",p->Value);
p=p->Left;
printf("Right Tree:\t%d",p->Value);
p=p->Right;
printf(" %d",p->Value);
p=Root;
p=p->Right;
p=p->Right;
printf(" %d\n",p->Value);
}
74
Страницы
- « первая
- ‹ предыдущая
- …
- 72
- 73
- 74
- 75
- 76
- …
- следующая ›
- последняя »
