Лабораторная работа №5 На тему: > Студент группы №233-21 Ат-Сервис Факультета "Компьютерный инжиниринг "


Download 150.35 Kb.
Sana28.12.2022
Hajmi150.35 Kb.
#1014029
TuriЛабораторная работа
Bog'liq
ула2


Министерство по развитию информационных технологии и коммуникации Республики Узбекистан


Ташкентский Университет информационных технологии имени Мухаммада ал-Хоразми
Предмет: <<Структуры данных и алгоритмы>>
Лабораторная работа №5
На тему: <<НЕЛИНЕЙНЫЕ СТРУКТУРЫ ДАННЫХ (ДЕРЕВЬЯ И ГРАФЫ)>>


Выполнил:
Студент группы №233-21 Ат-Сервис
Факультета “Компьютерный инжиниринг ”
Султанов Улугбек
Проверил:
Мухсинов Ш.Ш

Ташкент 2022


ЗАДАНИЕ 1. Определить новую динамическую структуру данных (бинарное дерево на основе нелинейного связного списка). Описать стандартные операции-процедуры по работе со структурой данных (добавления нового элемента, обхода дерева, удаления элемента, визуализации дерева и индивидуального задания).

  1. Вершины дерева вещественные числа. описать процедуру, которая удаляет все с четными значениями.

#include


using namespace std;
struct vershin
{
float data;
vershin *l, *r;
};
void add(vershin *&d, float x)
{
if(d == NULL)
{
d = new vershin;
d->data = x;
d->l = d->r = NULL;
}
if(d->data > x) add(d->l,x);
if(d->data < x) add(d->r,x);
}
void obxod1(vershin *d)
{
if(d!=NULL)
{
cout << d->data << ",";
obxod1(d->l);
obxod1(d->r);
}
}
void obxod2(vershin *d)
{
if(d!=NULL)
{
obxod2(d->l);
cout << d->data << ",";
obxod2(d->r);
}
}
void obxod3(vershin *d)
{
if(d!=NULL)
{
obxod3(d->l);
obxod3(d->r);
cout << d->data << ",";
}
}
void visual(vershin *d, int u)
{
if(d != NULL)
{
visual(d->r,u+1);
for(int i = 0; i < u; i++)
{
cout << "\t";
}
cout << d->data << endl;
visual(d->l,u+1);
}
}
void sredarif(vershin *d, float &s)
{
int k = 0;
if(d!=NULL)
{
s+=d->data;
sredarif(d->l, s);
k++;
sredarif(d->r, s);
}
}
int main()
{
vershin *tree = NULL;
float N, x, s = 0, sr;
cout << "Vvedite kolichestvo derevya = "; cin >> N;
for(int i = 1; i <= N; i++)
{
cin >> x;
add(tree,x);
}
sredarif(tree,s);
cout<<"summa->"<sr = s/N;
cout << sr<add(tree,sr);
visual(tree,0);
cout << "\nKLP: ";
obxod1(tree);
cout << "\nLKP: ";
obxod2(tree);
cout << "\nLPK: ";
obxod3(tree);
return 0;
}

Download 150.35 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling