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

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

Восстановить пароль Регистрация
 
ymanety
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 13
09.11.2010, 22:17     Доделать надо а ума не хватает #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++ довести до ума курсовую
Довести до ума программу про бинарному дереву C++
Не могу довести до ума..а хотя все эллиментарно...( C++
C++ Помагите довести исходник до ума
Не могу довести до ума, не хватает функции C++
Помочь доделать программу (Надо, чтобы все значения вводились с клавиатуры) C++
Чего не хватает C++
C++ с Клавиатуры надо ввести имена 5 человек , надо найти сколько гласных букв в каждом имени человека
в чем ошибка,как довести до ума C++
C++ Чего не хватает?
Производный класс сошел с ума! C++

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

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

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