(name, ios :: in | ios :: out | ios :: binary | ios :: trunc); (is_open ()) {= 0; (0, root); = split (objects, 0, n-1);// створення нового дерева (0, root);
}
}
} BinaryTree :: delete_node_createnew (ulong p) {num = 0; (p, num);// підрахунок кількості об'єктів у дереві * obj_arr = new T [num ];// створення масиву для об'ектовcounter = 0; _obj (p, obj_arr, counter);// сбороб'ектоввмассівsplit (obj_arr, 0, num-1);// створ аніє нового дерева
} BinaryTree :: collect_obj (ulong p, T * obj, int & i) {(p == 0) return; l, r, n, m [ 5], s = sizeof (ulong); j; (p, l, r, n, m); _obj (l, obj, i);// збір з лівого піддерева (j = 0; j
} _obj (r, obj, i);// сборізправогоподдерева
} BinaryTree :: numberofnode (ulong p, ulong & num) {(p == 0) return; l, r, n, m [5], s = sizeof (ulong); j; (p, l, r, n, m); (l, num); = num + n; (r, num);
} BinaryTree :: split (T * obj, int a, int b) {(b-a <5) {//підмасив менше 5pf = createnode (obj [a]); (int i = a +1; i <= b; i + +)// запис цих об'єктів у вершину pf (pf, obj [i], 0); pf;
} s = sizeof (ulong); m = (a + b)/2-2;// роздільник на лівий і правий подмассівp = createnode (obj [m]); l, r, n , mp [5]; (p, l, r, n, mp); i, j; (i = m +1, j = 1; j <5; i + +, j + +)// запис об'єктів і зтекущего подмассіва (p , obj [i], 0); = split (obj, i, b);// створення поддерева з лівого подмассіва = split (obj, a, m-1);// створення поддерева з правого подмассіва (p, l) ; (p + s, r); p;
} BinaryTree :: operator <<(T & obj) {(obj);
}
Додаток Б. Файл "main. cpp "
# include "class. h "
# include "lab. h "
# include
# include
usingnamespace std;
void printmenu () {
cout <<"1. Створити n2. Відкрити n3. Відобразити дерево n4. Додати об'єкт n5. Видалити об'єкт n6. Стиснути файл n7. Налаштування n n ";
}
void printtype () {
cout <<"Оберіть тип об'єкта n";
cout <<"1. int n2. time (з лабораторної роботи) n ";
}
int definetype (char * name) {//визначення типу по рядку
char * type = newchar [5];
int i, j;
type [4] = ' 0';
for (i = strlen (name) - 1, j = 3; i> = 0 && j> = 0; i -, j -) {