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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
FatherSJ
Сообщений: n/a
#1

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

05.04.2013, 07:20. Просмотров 392. Ответов 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++
Задача такая: есть бинарное дерево. Каждый элемент дерева содержит 3 указателя - 1 указатель на структуру с данными, 2 и 3й указатель на...

Написать шаблон бинарного дерева с функцией распечатки дерева - C++
Не понимаю, что от меня хотят. Дано такое задание: Написать шаблон бинарного дерева с функцией распечатки дерева *(+(d,e),c) в виде...

Создание бинарного дерева из бинарного файла - C++
struct Bin { string name; string city; int players; int score; }; void ReadFromBin(Point*&amp; Tree) { Bin q;

Построение бинарного дерева на основе не бинарного - C++
В лабораторной работе есть такое задание: Создайте процедуру построения бинарного дерева на основе не бинарного. Объясните как вообще...

Вывод бинарного дерева на экран в виде "дерева" - C++
основная задача: подсчет количества листьев. проблема: при просмотре хочу выводить бин. дерево, в красивом виде, возможно использование...

Реализация бинарного дерева - C++
написать программу, реализующую бинарное дерево. Предусмотреть процедуры и функции: инициализация дерева, вставка элемента (вершины),...

1
yoghurt92
374 / 345 / 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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2013, 18:19
Привет! Вот еще темы с ответами:

Обход бинарного дерева С++ - C++
Нужна помощь! Просмотрел много источников, но так и не нашёл своего ответа...Суть задачи состоит в том что, мне нужно при обходе...

Копирование бинарного дерева - C++
Имеется бинарное дерево типа class TreeNode { public: TreeNode(); //конструктор virtual ~TreeNode(); //деструктор ...

Глубина бинарного дерева - C++
На одном сайте, вроде как сурьезном читаю про деревья. столкнулся вот с таким примером вычисления глубины дерева // Эта функция...

Обход Бинарного дерева - C++
Задача: написать функцию, помощью которой можно получить n-тый элемент бинарного дерева по возрастанию. в узлах хранятся целые числа. ...


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

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

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