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

Реализовать n-арное дерево в виде класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Абстрактные классы, наследование http://www.cyberforum.ru/cpp-beginners/thread276311.html
Задание: Написать базовый абстрактный класс «фигура» (с чистыми виртуальными функциями: нарисовать, передвинуть, повернуть) и два класса наследника окружность и квадрат, с различной реализацией этих функций. В основной программе создать массив указателей базового класса на объекты классов наследников. Передвинуть все объекты на одинаковое расстояние. Помогите плиз, кто чем может=) ...
C++ учебники Доброго времени суток, уважаемые программисты. Посоветуйте пожалуйста учебники для c++ что бы за пол года освоить и выйти хотяб на республиканскую олимпиаду. Желательно по матрицам(типо города, найти кратчайший путь, и т.п.) http://www.cyberforum.ru/cpp-beginners/thread276300.html
Как рассчитать невязку в программе?? C++
#include <iostream.h> #include <math.h> #include <conio.h> int sign(double x) { if (x < 0) return -1; else return 1; } void main()
Определить, какая цифра находится в заданной позиции в последовательности степеней десятки C++
Ограничение времени: 1.0 секунды Ограничение памяти: 16 МБ Представим себе бесконечную последовательность цифр, составленную из записанных друг за другом возрастающих степеней десятки. Вот начало этой последовательности: 110100100010000… Всё, что надо — определить, какая цифра находится в такой последовательности на определённом месте. Исходные данные В первой строке находится целое число N...
C++ ATOI конвертации, непонятная ошибочка http://www.cyberforum.ru/cpp-beginners/thread276272.html
кусок должен принимать чар в буффер, N нужно лишь для проверки #include <stdio.h> #include <stdlib.h> char *buffer1; int N; ... printf("Введите значение N"); scanf_s ("%s", &buffer1);
C++ Ассемблеровские вставки в C++ Подскажите, пожалуйста, как в таких вставках в C++ сделтаь массив чисел (или строк) везде написано одно и то же, вот как здесь http://www.kolasc.net.ru/cdo/programmes/assembler/massiv.html но на этот код компилятор "ругается" напишите как: создать массив заполнить массив осуществляется доступ к элементам подробнее

Показать сообщение отдельно
AkylaQD
0 / 0 / 0
Регистрация: 14.04.2011
Сообщений: 5
14.04.2011, 14:21     Реализовать n-арное дерево в виде класса
Помогите решить задачу.
Нужно реализовать дерево в виде класса. Так же в классе нужно написать методы(функции) поиск елемента по индексу, добавления нового елемента к существующему по введенному индексу.
Что-то никак неполучается реализовать функции добавления и поиска елементов.
Вот что-то я написал но ничего никак не работает.
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <list>
 
using namespace std;
 
 
class TreeNode
{
    public:
        TreeNode()
        {
            childs=NULL;
        }
 
        TreeNode *childs;
        TreeNode *pparent;
        int index;  
 
 
                unsigned int nChildCount; // amount of chidren
    
        int return_charge()
        {
            return charge;
        }
         void set_charge(int ch)
        {
            charge=ch;
        }
          void set_parent(TreeNode ppar)
        {
            pparent=&ppar;
        }
 
    private:
        int charge; //The charge in this node.
        TreeNode *nextnode;
            
};
 
class Tree  
{
        public:
        Tree()
        {
            IND=0;
                root.set_charge(10);
            root.index=IND;
            root.nChildCount=0;
            //root.set_childs(NULL);
        }
        TreeNode* FindNode(int nb,TreeNode *pNode)
        {
            if(nb==pNode->index)
        {
            return pNode;
        }
 
        if (pNode->nChildCount > 0)
                {
                for (int qq = 0; qq <= pNode->nChildCount; qq++)
                {
                FindNode(nb, &pNode->childs[qq]);
                }
        }
        }
 
        TreeNode create_node(int nb)
        {
               
            if(nb>IND)
            {
                cout << "\n Такого узла нету";
            }
            else
            {
            IND+=1;
                                
            TreeNode *pNode = new TreeNode; 
 
            if(nb==0)
            {
                        root.nChildCount += 1;
                                    
            pNode=&root.childs[root.nChildCount];
    
    
                pNode->index=IND;
 
 
            pNode->pparent=&root;
            pNode->index=IND;
            pNode->set_charge(10);
                                      
                        root.childs[root.nChildCount] = *pNode;                                                  
                        }
            else
            {
                TreeNode *trn;
                trn=FindNode(nb, &root);
                pNode->pparent=trn;
                pNode->index=IND;
            
                trn->nChildCount+=1;
                
                trn->childs[trn->nChildCount]= *pNode;
            }   
            }       
        }
 
        TreeNode return_root()
        {
            return root;
        }
    private:
        TreeNode root;
        int IND;
 
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru