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

Дерево. Готовая программа на 95% - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Могли бы ответить на данный тест и пояснить ответ ? http://www.cyberforum.ru/cpp-beginners/thread1009177.html
Могли бы ответить на тест
C++ Деректива assert Как правильно? #include <iostream> #include <assert.h> #define NDEBUG assert(n == 0); int main() { int n=0; NDEBUG http://www.cyberforum.ru/cpp-beginners/thread1009176.html
C++ Ложная тревога Касперского
Пишу прогу. Добавляю такой код: char c; bool stop=0; ifstream iFile; while(!stop){ cout<<"Выберите действие. 1 - кодирование, 2 - декодирование, ESC - выход.\n"; c=_getch(); switch(c){ case '1': cout<<"Введите имя файла для кодирования. 1 - default\nФайл: ";
C++ Структуры и указатели на структуры
Так ли я сделал? #include <iostream> struct S { int i; }; void f1(S*s1,int k=0){ s1->i=k;};
C++ книга прата с. глава 6 задание 7 http://www.cyberforum.ru/cpp-beginners/thread1009153.html
Напишите программу, котрая читает слова по одному за раз, пока небудет введена отдельная буква q. После этого программа должна сообщить количество слов, начинающихся с гласных, количество слов начинающихся с согласных, а также количество слов не попадающих ни в одну из этих категорий. Одним из возможных подходов может быть применение isalpha() для разлечения слов, начинающихся с букв, и остальных...
C++ Задача. Из листа клетчатой бумаги удалили некоторые клетки Из листа клетчатой бумаги размером M*K клеток удалили некоторые клетки. Подсчитать, на сколько кусков распадется оставшаяся часть листа. Пример: Если из шахматной доски удалить все клетки одного цвета, то оставшаяся часть распадется на 32 куска. подробнее

Показать сообщение отдельно
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320

Дерево. Готовая программа на 95% - C++

16.11.2013, 03:00. Просмотров 611. Ответов 7
Метки (Все метки)

Вот само дерево.
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
#include <iostream>
#include <conio.h>
using namespace std;
int todor=0;
struct Node 
{
   int x; //То, что записываем в дерево
   Node *l,*r;
};
void show(Node *&Tree) //Функция обхода
{
    if (Tree!=NULL)
    {
       show(Tree->l); //Рекурсивная функция для вывода левого поддерева
       cout<<Tree->x;//Отображаем корень дерева
       cout << "  ";
       show(Tree->r); //Рекурсивная функци для вывода правого поддерева
    }
}
 
Node* add_node(int x,Node *&MyTree) //Фукция добавления звена в дерево
{
    if (!MyTree)
    {
        MyTree= new Node;
        MyTree->x=x;
        MyTree->l=0;MyTree->r=0;
    }
    else
        if(x<MyTree->x)
            MyTree->l=add_node(x,MyTree->l);
        else
            MyTree->r=add_node(x,MyTree->r);
    return MyTree;
 
}
int DeleteTree(Node *Tree)
{
     if (Tree==NULL)
         return 0;
     else
     {
           DeleteTree(Tree->l);
           DeleteTree(Tree->r);
           delete Tree;
           Tree = NULL;
     }
}
int main()
{
  Node *Tree=NULL;  
  int k,e,z;
  cout << "Vvedite kolichestvo elementov v dereve\n";
  cin >> z;
  cout << "Vvedite elementi dereva\n";
      for (int i=0;i<z;i++) 
      {
          cin >> k;
          add_node(k,Tree);
      }
      cout << "Vvedite kluch\n";
      cin >> e;
      cout << "Derevo:\n";
      show(Tree);
      DeleteTree(Tree);
      getch();
   return 0;
}
Нужно дописать функцию, которая определяет количество узлов в дереве, у которых есть только один потомок. Не знаю как(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru