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

Проблемы с выводом бинарного дерева - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ По заданной вещественной матрице N*M найти http://www.cyberforum.ru/cpp-beginners/thread171751.html
По заданной вещественной матрице N*M найти Мои наработки: #include <stdio.h> #include <conio.h> #define N 5 #define M 5
C++ Код Прюфера Написал программу по коду Прюфера (кодирует и декодирует дерево). Получилось довольно немало текста... В связи с чем хочу задать вопрос, что вы считаете лишнее в этой программе? Что бы вы посоветовали? П.С. переделывать конкретно эту программу не буду, но запомню на будущее. Про реализацию кстати тоже интересно, кто бы как реализовал исходные данные (матрицей смежности, списком ребер?)... http://www.cyberforum.ru/cpp-beginners/thread171750.html
C++ Программа зависает при очищении памяти
Здраствуйте. Написал программу, вроде работает нормально, только при окончании зависает. Вот код: #include <iostream> #include <ctime> using std::cout; using std::cin; using std::endl; int main()
Чтение из бинарного файла C++
Добрый вечер.Возникла проблема при чтении имени объекта из бинарного файла,запись в файл идет по структуре |char|int|double|float|'/0'| (запись идет с первого байта) char lname =0; char* tname = new char; _read(hFile, tname, (int)lname); tname='\0'; offset+=lname; _lseek(hFile, offset, SEEK_SET); Для того что бы...
C++ Извлечь из строки числа http://www.cyberforum.ru/cpp-beginners/thread171711.html
Нужно извлечь из строки числа. "12/12/12" результат! day = 12; mounth = 12; year = 12; убил 10 минут чтобы найти что-то похожее на этом форуме, ничего не нашел! ну а у гугла я видемо не умею спрашивать! :)
C++ Цикл с увеличивающимся шагом Необходимо написать цикл шаг которого будет увеличиваться. Допустим есть массив из 100 int переменных равных нулю. И есть последовательность: 0 2 5 9 14 20 27 35 44 ... Суть последовательности заключается в том что промежуток между числами растет сначала 1, затем 2, 3 и тд. И нужно в каждый элемент массива, соот. числу последовательности, приравнять к 1. подробнее

Показать сообщение отдельно
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
03.10.2010, 01:56     Проблемы с выводом бинарного дерева
Вот, пытался сделать лабу. Проблема с выводом. Извините за код, знаю что он кривой, сделайте замечания!!!

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
/*
Два бинарных дерева зеркально подобны, если либо оба они пусты, 
либо оба непустые, и при этом левое поддерево одного из них подобно 
правом поддерево другого и наоборот. Определить, два дерева зеркально подобными
*/
#include <iostream>
#include <ctime>
 
using std::cout;
using std::cin;
using std::endl;
 
struct Node
 {
   int key;
   Node *left;
   Node *right;
 };
typedef Node* trees;
trees AddNode(trees& t, int n)
{
   if (t == NULL)  
   { 
       t = new Node; 
       t->left = NULL; 
       t->right = NULL; 
       t->key = n; 
  }
   else             
   { if (n >=t->key) 
         AddNode(t->right, n);  
     if (n <  t->key) 
         AddNode(t->left, n);   
    }
   return t;
}
 
int main()
{ int i=1;
  srand(time(NULL)); 
  setlocale( LC_ALL,"Russian" );
  trees tree_1=NULL, tree_2=NULL;
  for(;i<=3;i++)
  {
      AddNode(tree_1,rand()%-4+4);
      AddNode(tree_2,rand()%-4+4);
  }
   if ((tree_1==NULL&&tree_2==NULL)||(tree_1!=NULL&&tree_2!=NULL))
   {
       if ((tree_1->left==tree_2->right)||(tree_1->right==tree_2->left))
          {
              cout<<"Дерева дзеркально подiбнi!!!"<<endl;
              cout<<"tree_1 -> "<<tree_1->key<<"  "<<tree_1->left->key<<"  "<<tree_1->right->key<<endl;
              cout<<"tree_2 -> "<<tree_2->key<<"  "<<tree_2->left->key<<"  "<<tree_2->right->key;
         }
       else 
              cout<<"Дерева не дзеркально подiбнi!!!"<<endl;
              cout<<"tree_1 -> "<<tree_1->key<<"  "<<tree_1->left->key<<"  "<<tree_1->right->key<<endl;
              cout<<"tree_2 -> "<<tree_2->key<<"  "<<tree_2->left->key<<"  "<<tree_2->right->key;
   }
        
   system("pause");
   return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru