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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2012, 19:16   #1
7rubin
Пользователь
 
Регистрация: 18.12.2011
Сообщений: 25
Подмигивание вывести элементы самой длинной ветви бинарного дерева.

вот есть реализация дерева:

#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
/* Структура, описывающая узел дерева */
typedef struct item {
int data;
struct item *left;
struct item *right;
} Item;
void AddNode(int data, Item **node);
void LeftOrder(Item *node);
void main(void)
{
char buffer[128];
int i;
Item *root = NULL; /* корень дерева */
FILE *fp = fopen("ex52.txt", "r");
if (!fp) exit(1); /* выйти, если файл не удалось открыть */
/* Считываем значения из файла построчно */
while (fgets(buffer, 128, fp) != NULL)
AddNode(atoi(buffer), &root); /* и добавляем в дерево */
LeftOrder(root);
fclose(fp);
}
/* Добавить узел в бинарное дерево поиска */
void AddNode(int data, Item **node)
{
if (*node == NULL) {
*node = (Item *)calloc(1, sizeof(Item));
(*node)->data = data;
(*node)->left = (*node)->right = NULL;
} else {
if (data < (*node)->data)
AddNode(data, &(*node)->left);
else if (data > (*node)->data)
AddNode(data, &(*node)->right);
else
puts("There is such element in the tree");
}
}
/* Обход дерева слева (вывод по возрастанию) */
void LeftOrder(Item *node)
{
if (node->left)
LeftOrder(node->left);
printf("%d ", node->data);
if (node->right)
LeftOrder(node->right);
}

нужно выветси в консоль элементы самой длинной ветви дерева.
помогите пожалуйста, может у кого-то код готовый есть...
7rubin вне форума Ответить с цитированием
Старый 24.05.2012, 22:01   #2
7rubin
Пользователь
 
Регистрация: 18.12.2011
Сообщений: 25
По умолчанию

может кто алгоритм подскажет решения задачи?
нахождения максимальной глубины дерева это тоже получится ветвь с максимальной длиной???
или я ошибаюсь?
7rubin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Порядковый номер самой длинной строки в файле tshen Помощь студентам 5 10.06.2010 14:44
сумма бинарного дерева Sparky Win Api 0 16.03.2010 18:15
Pascal. нахождения самой длинной возрастающей подпоследовательности nemeli Помощь студентам 5 16.02.2010 16:12
Определить, сколько букв в самой длинной фамилии списка. lunnamedl Помощь студентам 4 29.06.2009 11:33
Составление бинарного дерева [MI_nor] Общие вопросы C/C++ 1 08.05.2009 00:28