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

Структура в Ветви бинарного дерева - C++

Восстановить пароль Регистрация
 
FatherSJ
Сообщений: n/a
05.04.2013, 07:20     Структура в Ветви бинарного дерева #1
Есть программа, которая работает, но в ветвях дерева - x. Вместо x, необходимо использовать структуру (инт и 2 чара). Как это реализовать?

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
#include <iostream>
using namespace std;
 
struct Node
{
   int x;
   Node *l,*r; 
};
 
void show(Node *&Tree) 
{
    if (Tree!=NULL) 
    {
       show(Tree->l);
       cout<<Tree->x; 
       show(Tree->r); 
    }
}
 
void add_node(int x,Node *&MyTree) 
{
    if (NULL==MyTree)  
    {
        MyTree=new Node; 
        MyTree->x=x;
        MyTree->l=MyTree->r=NULL; 
    }
 
                   if (x<MyTree->x)   
                      {
                          if (MyTree->l!=NULL) add_node(x,MyTree->l);
                          else
                          {
                              MyTree->l=new Node;  
                              MyTree->l->l=MyTree->l->r=NULL; 
                              MyTree->l->x=x;
                          }
                      }
                 
                    if (x>MyTree->x)  
                      {
                          if (MyTree->r!=NULL) add_node(x,MyTree->r);
                          else 
                          {
                              MyTree->r=new Node; 
                              MyTree->r->l=MyTree->r->r=NULL; 
                              MyTree->r->x=x;  
                          }
                      }
        
}
 
int main()
{
   Node *Tree=NULL;
  
 
      
      for (int i=5;i>0;i--) add_node(i,Tree); 
      show(Tree);
 
      cin.get();
 
   return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2013, 07:20     Структура в Ветви бинарного дерева
Посмотрите здесь:

Прошивка бинарного дерева на С++ C++
Обходы бинарного дерева, рекурсивные и не. C++
Копирование бинарного дерева C++
C++ Шаблон бинарного дерева
Создание бинарного дерева C++
C++ Итератор дерева бинарного поиска
C++ Высота бинарного дерева
C++ Запись бинарного дерева
Заполнение бинарного дерева из файла C++
C++ Реализация бинарного дерева С++
Глубина бинарного дерева C++
Балансировка бинарного дерева C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
05.04.2013, 18:19     Структура в Ветви бинарного дерева #2
FatherSJ,

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
#include <iostream>
using namespace std;
 
struct Kuku
{
    int data1;
    char data2, data3;
 
    void input()
    {
        cout << "Enter int: ";
            cin >> data1;
    }
 
    void output()
    {
        cout << "Enter int: " << data1 << endl;
    }
};
 
struct Node
{
   Kuku x;
   Node *l,*r; 
};
 
void show(Node *&Tree) 
{
    if (Tree!=NULL) 
    {
       show(Tree->l);
       Tree->x.output(); 
       show(Tree->r); 
    }
}
 
void add_node(Kuku value, Node *&MyTree) 
{
    if (NULL==MyTree)  
    {
        MyTree=new Node; 
        MyTree->x.input();
        MyTree->l=MyTree->r=NULL; 
    }
 
    if (value.data1 < MyTree->x.data1)   
                      {
                          if (MyTree->l!=NULL) add_node(value,MyTree->l);
                          else
                          {
                              MyTree->l=new Node;  
                              MyTree->l->l=MyTree->l->r=NULL; 
                              MyTree->l->x=value;
                          }
                      }
                 
                    if (value.data1 > MyTree->x.data1)  
                      {
                          if (MyTree->r!=NULL) add_node(value,MyTree->r);
                          else 
                          {
                              MyTree->r=new Node; 
                              MyTree->r->l=MyTree->r->r=NULL; 
                              MyTree->r->x=value;  
                          }
                      }
        
}
 
int main()
{
   Node *Tree=NULL;
  
      for (int i=5;i>0;i--){
          Kuku value;
          value.input();
          add_node(value, Tree);
      }
      cout << endl;
 
      show(Tree);
 
      cin.get();
 
   return 0;
}
Yandex
Объявления
05.04.2013, 18:19     Структура в Ветви бинарного дерева
Ответ Создать тему
Опции темы

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