Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Структури даних: бінарне впорядковане незбалансоване дерево

Реферат Структури даних: бінарне впорядковане незбалансоване дерево





delete_ (P-> Right, X);// шукати в правому поддереве

В 

else {

// вузол знайдений, треба його видалити

// зберегти посилання на віддалений вузол

Q = P;

if (Q-> Right == NULL)

// праворуч NULL

// і посилання на вузол треба замінити посиланням на цього нащадка

P = Q-> Left;

else

if (Q-> Left == NULL)

// ліворуч NULL

// і посилання на вузол треба замінити посиланням на цього нащадка

P = P-> Right;

else// вузол має двох нащадків

Del (Q-> Left, Q);

delete Q;

} p> else

cout <<"Такого елемента в дереві немає" <

}


void TTree :: Del (TInfo Key)


{

delete_ (Root, Key);

}

// --------------------------------------------- ----------------

static void PrintTree (PItem R, TInfo L)

{

int i;


if (R! = NULL) {

PrintTree (R-> Right, L + 3);

for (i = 1; i <= L; i + +)

cout <<'';

cout < Key <

PrintTree (R-> Left, L + 3);

} p>}


void TTree :: View ()

{

PrintTree (Root, 1);

}

// --------------------------------------------- ----------------

static void Search (PItem & P, TInfo X)

{

if (P == NULL) {

cout <<"Такого елемента немає" <

} Else

if (X> P-> Key)// шукається в правому поддереве

Search (P-> Right, X);

else

if (X

Key)

Search (P-> Left, X);

else

cout <<"Є такий елемент" <

}


void TTree :: Exist (TInfo Key)


{

Search (Root, Key);

}

// --------------------------------------------- ----------------

static void Node_Dispose (PItem P)

// Видалення вузла і всіх його нащадків у дереві

{

if (P! = NULL) {

if (P-> Left! = NULL)

Node_Dispose (P-> Left);

if (P-> Right! = NULL)

Node_Dispose (P-> Right);

delete P;

} p>}


TTree :: ~ TTree ()


{

Node_Dispose (Root);

}

// --------------------------------------------- ----------------

void inputKey (string S, TInfo & Key)

{

cout <

cin>> Key;

}


TTree * Tree = new TTree;

int N;

TInfo Key;

int main (int argc, const char * argv [])

{

do {

cout <<"1-Додати елемент в дерево" <

cout <<"2-Видалити елемент" <

cout <<"3-Вивести вузли дерева" <

cout <<"4-Перевірити існування вузла" <

cout <<"5-Вихід" <

cin>> N;

{p> switch (N) {

case 1: {

inputKey ("Введіть значення додається елемента", Key);

Tree-> Add (Key);

} p> ...


Назад | сторінка 6 з 7 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Несправний вузол телевізора &Горизонт& і його ремонт
  • Реферат на тему: Телекомукаційній вузол
  • Реферат на тему: Балканський вузол
  • Реферат на тему: Вузол підготовкі сировина
  • Реферат на тему: Вузол редуктора електромеханічного приводу