0 / 0 / 0
Регистрация: 04.06.2015
Сообщений: 2
1

Сильно ветвящееся дерево

04.06.2015, 23:33. Показов 2503. Ответов 0
Метки нет (Все метки)

Помогите, пожалуйста, исправить структуру сильно ветвящегося дерева. Методы печати и поиска работают некорректно. А insert вообще не работает. И как сделать удаление узлов?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#ifndef _TREE_H_
#define _TREE_H_
 
#include <stdlib.h>
#include <iostream>
using namespace std;
struct node
{
int key;
node* parent;
node** children;
int length;
};
 
node* createNode(int n, node* parent)  //создание узла
{
node* newNode = new node();
newNode->key = n;
newNode->parent = parent;
newNode->children = (node**)calloc(2,sizeof(node));//init dynamic array 
newNode->length = 1;
return newNode;
};
 
void testArrayIndex(node* parent, int index)  //выделение памяти для дочерних узлов
{   
    if (parent->length - 1 > index)
{
parent->children = (node**)realloc(parent->children, 2*sizeof(node*));
parent->length = index + 1;
}
//if index not exists then do realloc, Где N новое количество элементов
};
//-------------------------------------------------------------------------------------------------
void showTree(node *tree)  // печать дерева
{
if (tree != NULL)
{
for (int i=0; i<tree->length; i++)
{
cout<<"\n"<<tree->key;
showTree(tree -> children[i]);
}
};
};
//--------------------------------------------------------------------------------
int search(node *tree, int param_sravneniya)  // поиск по дереву
{
if (tree != NULL)
{
for (int i=0; i<tree->length; i++)
{
if (tree->key==param_sravneniya) {return tree->key; break;}
else 
{
cout<<tree->key;
return search(tree -> children[i], param_sravneniya);
}
}
};
};
 
void insert(node *tree, int key)   //вставка элемента
{
    if (tree!=NULL)
    {
        for (int i = 0; i < tree->length; i++)
        {
        if (tree->children[i]==NULL)
        {
        createNode(key, tree);
        testArrayIndex(tree, i);
        }
        }
    }
    };
#endif
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2015, 23:33
Ответы с готовыми решениями:

Ветвящееся меню
Нужно сделать ветвящееся меню, то есть, чтобы было так: 1. Первый пункт -&gt; раскрывается вправо на...

Очень сильно торможу на математических задачах, даже очень сильно. Какие книги помогут достичь нужного уровня
Читаю Кнута ,,Искуство программирования'' но очень сильно торможу на математических задачах,даже...

Я очень сильно запустил свой ПК,посоветуйте что нибудь т.к. очень сильно тормозит
Сильно запустил свой ПК,при включении приходится ждать около часа чтобы не лагал так сильно,при...

Сформировать дерево Т и определить число вхождений параметра Е в дерево Т - Блок схема
Сформировать дерево Т и определить число вхождений параметра Е в дерево Т. Вот решение задачи,...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2015, 23:33
Помогаю со студенческими работами здесь

Бинарное дерево: как происходит добавления элемента в дерево с двумя параметрами
Здравствуйте! Прошу помощи у опытных программистов...)))) Есть класс дерево: class class1 ...

Методы индексирования на основе функции расстояния. Универсальное деление гиперплоскостями. Дерево биссектрис и МВ-дерево
Доброго времени суток. В поисках информации для курсовика жизнь занесла сюда :) Поделитесь...

Как залезть в расчетное дерево (дерево зависимостей формул)?
Есть собственная формула, параметры которой заставляют для ее расчетов лезть на другие листы и в...

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru