Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2011, 21:33   #1
Vellosity
 
Регистрация: 17.04.2011
Сообщений: 9
По умолчанию Поиск по двоичному дереву

Всем доброго времени суток!

У меня такое задание:
1) Создать двоичное дерево (подразумеваю, что через структуру)
2) Заполнить дерево случайными значениями с помощью функции рандомизации (числами от 1 до 10)
3) Осуществить поиск по ключу. (ввести ключ с клавиатуры scanf'ом, и если в дереве есть такой же элемент, вывести сообщение, что элемент найден (или не найден соответственно)

Тема структуры для меня новая, запутался в переменных (операторах присвоения адреса "->" и.т.д.)

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

Вот что сам смог написать:

Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
#include <time.h>


// Функция добавления элемента в дерево
void AddToTree (PNode &Tree, // указатель на корень (ссылка)
                  int data) // добавляемый ключ
{
	if ( ! Tree ) 
	{
		Tree = new Node; // создать новый узел
		Tree->key = data;
		Tree->left = NULL;
		Tree->right = NULL;
		return;
	}
	if ( data < Tree->key ) // добавить в нужное поддерево
		AddToTree ( Tree->left, data );
	else AddToTree ( Tree->right, data );
}

void Search (PNode Tree, int what)
{
	if ( ! Tree ) return NULL; // ключ не найден
	if ( what == Tree->key ) return Tree; // ключ найден!
	if ( what < Tree->key ) // искать в поддеревьях
		return Search ( Tree->left, what );
	else return Search ( Tree->right, what );
}

void main() 
{
	setlocale(LC_ALL,"Russian");
	srand (time (NULL));
	int vershina;
	printf ("Введите корень дерева: ");
	scanf ("%d", &vershina);
	float element [7];
	for (int i=0; i<7; i++)
	{
		element[i]=rand()%10;
	}
	struct Tree
	{ .....}
Заранее спасибо
Vellosity вне форума Ответить с цитированием
Старый 17.04.2011, 23:50   #2
Vellosity
 
Регистрация: 17.04.2011
Сообщений: 9
Восклицание

Вот что смог написать к 12ти ночи.. с каждым часом всё больше и больше разбираюсь, но увы не компилирует!!! Помогите мне кто-нибудь! Спасибо за потраченные на меня минуты = )
Вложения
Тип файла: rar LABA_2.rar (147.4 Кб, 7 просмотров)
Vellosity вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проход по дереву на c++ Skilluser Помощь студентам 18 20.11.2010 19:34
Поиск по бинарному дереву интеграл Общие вопросы C/C++ 3 01.05.2010 11:52
Проход по дереву. Ozerich Общие вопросы Delphi 1 05.10.2008 17:33
TreeView и PageControl (переключение вкладок по дереву) Nevy Общие вопросы C/C++ 5 17.08.2008 19:17