Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ymanety
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 13
#1

Доделать надо а ума не хватает - C++

09.11.2010, 22:17. Просмотров 413. Ответов 1
Метки нет (Все метки)

/*
7. Имеется массив записей, расположенных по возрастанию некоторого ключевого поля.
Одинаковых ключей нет. Построить из элементов массива бинарное дерево такое, что для
каждой вершины ключ левого сына меньше ключа отца, а ключ отца меньше ключа правого сына.
Составить программу быстрого поиска элемента с заданным ключом, возвращающую номер элемента массива,
если есть элемент с этим ключом. Если такого элемента нет, выдать соответствующее сообщение.
*/
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <windows.h>


struct node
{
int Key;
int Count;
node *Left;
node *Right;
};

class TREE
{
private:
node *Tree; // Указатель на корень дерева.
void Search (int,node**);
public:
TREE()
{
Tree = NULL;
}
node** GetTree ()
{
return &Tree;
} // Получение вершины дерева.
// Прототипы, используемых в программе, функций.
void BuildTree ();
void Vyvod (node**,int);
void MASSIV_ZAPISEY();

};

void main ()
{
TREE A;

A.BuildTree ();
cout << "\nVyvod dereva:\n";
A.Vyvod (A.GetTree(),0);

cout << "\n\n\n\n\n\nNazhmite lubuyu klavishu dlya vyhoda:";
getch();
}

void TREE::BuildTree ()
// Tree - указатель на корень дерева.
{
int el;

cout << "Vvedite klyuchi vershin dereva:\t\n" << endl;
cin >> el;
while (el != 0)
{
Search (el, &Tree);
cin >> el;

}
}

void TREE::MASSIV_ZAPISEY()
{
int A[5] = {1,2,3,4,5}; // odinakovyh klyuchey net
int i;
for (i=0; i<5; i++)

getch();
}

void TREE::Search (int x,node **p)
/* *p - указатель на корень дерева. */
{
if (*p == NULL)
{// Вершины в дереве нет; включим ее.
*p = new(node); // Выделим память.
(**p).Key = x;
(**p).Count = 1;
(**p).Left = NULL;
(**p).Right = NULL; }
else
if (x<(**p).Key) Search (x,&((**p).Left));
else
if (x>(**p).Key) Search (x,&((**p).Right));
else
(**p).Count = (**p).Count + 1;
//delete *p;
}


void TREE::Vyvod (node **w,int l)
// *w - указатель на корень дерева.
{
int i;

if (*w != NULL)
{
Vyvod (&((**w).Right), l+1);
for (i = 1; i <= l; i++)
cout << " ";
cout << (**w).Key << endl;
Vyvod (&((**w).Left), l+1);
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2010, 22:17     Доделать надо а ума не хватает
Посмотрите здесь:

Не могу довести до ума, не хватает функции - C++
/* c помощью текстового редактора блокнот создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки...

Помочь доделать программу (Надо, чтобы все значения вводились с клавиатуры) - C++
Здравствуйте, дорогие форумчане. Опять нуждаюсь в вас. Мне помочь доделать программу. Задание прикрепил на скрине, так как его...

очень надо!!доделать/переделать программу с текстовыми файлами(повторы слов) - C++
нужно упорядочить слова находящиеся в тексте по убыванию частоты.При этом различия в регистре не учитывать и делать с текстовыми...

довести до ума курсовую - C++
задание:программное моделирование международной телефоной станции. указание.на междунородной тел станции картотека абонентов содержащая...

Помагите довести исходник до ума - C++
Здраствуйте дорогой форум! я новичек в этом деле , нашел исходник на c++ для игры warcraft maphack и не могу его откомпилировать ...

Производный класс сошел с ума! - C++
У базового класса у которого перегружена операция ++(префиксная) есть 2 производных: 1) перегружена префиксная операция -- 2)...

в чем ошибка,как довести до ума - C++
Дан массив чисел В. Найти сумму положительных и отрицательных чисел массива с нечетными индексами и количество элементов массива равных...

Не могу довести до ума..а хотя все эллиментарно...( - C++
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Xнач до Хкон с шагом dX. Формула -ax-c при...

Довести до ума программу про бинарному дереву - C++
Здравствуйте. Помогите пожалуйста привести до ума задачу: организовать бинарное дерево по заданной последовательности и функцию включения...

Чего не хватает - C++
Помогите дописать программу: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int mas_a,mas_b,mas_c; int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ymanety
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 13
10.12.2010, 21:26  [ТС]     Доделать надо а ума не хватает #2
сделал можешь удалять!!!
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru