Задание 4. Задача 6. Вершина дерева содержит два целых числа и три указателя на поддеревья. Данные в дереве упорядочены. Написать функцию включения нового значения

  • ID: 63757 
  • 4 страницы

Фрагмент работы:

Задание 4

Задача 6

Вершина дерева содержит два целых числа и три указателя на поддеревья. Данные в дереве упорядочены. Написать функцию включения нового значения в дерево с сохранением упорядоченности.

Текст программы:

В программе реализованы две рекурсивные функции Scan() и Insert(). Функция Scan() – осуществляет обход дерева, спускаясь каждый раз вниз по ссылке до эемента равного NULL, начиная с левой ссылки. Если в вершине не определено val2 то функция печатает –NULL.

Функция Insert()- путем прохода по дереву ищет место для вставки нового элемента, с учетом его значения, сравнивая вставляемый элемент со значениями val1 и val2, текущих вершин.

Если v – вставляемое значение < val1, то поиск продолжается по левой ссылке(pp->left), если v>val1, но vcenter), иначе по правой ссылке(pp->right).

#include

#include

#include

//Описание вершины дерева с двумя элементами и тремя ссылками на такие //же листья

struct tree

{

int val1, val2;

tree *left, *center, *right;

}*root;

extern tree a, b, c, d;

//Процедура обхода дерева сверху вниз и слева-направо – В результате //получается упорядоченная числовая последовательность

void Scan(tree *p)

{

}

//Процедура вставки элемента в дерево с сохранением упорядоченности //дерева

void Insert(tree *&pp, int v)

{

Результат работы программы: