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

В двоичном дереве удалить все узлы, значения которых является простым числом - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить другие стороны параллелограмма http://www.cyberforum.ru/cpp-beginners/thread906500.html
В параллелограмме A B C D сторона AB составляет A/B всего периметра. Определить другие стороны параллелограмма
C++ В спортивных соревнованиях Шарик, кот Матроскин, дядя Фёдор и почтальон Печкин заняли соответственно 1, 2, 3 и 4 места Всем привет! помогите пожалуйста написать программу. В спортивных соревнованиях Шарик, кот Матроскин, дядя Фёдор и почтальон Печкин заняли соответственно 1, 2, 3 и 4 места. Составить программу, которая по номеру места выдаёт имя участника соревнований. Нужно сделать через классы,ооп. http://www.cyberforum.ru/cpp-beginners/thread906497.html
Перевести число в эквивалентное обозначение буквами C++
Помогите, пожалуйста! Дано натуральное число N, нужно вывести название столбца (как в Excel), который бы имел номер N, т.е. если N = 1, вывести A если N = 2, вывести B если N = 3, вывести C ... если N = 26, вывести Z если N = 27, вывести AA если N = 28, вывести AB и т.д.
C++ Как внедрить в откомпилированный файл дополнительные данные?
Т.е. пишем небольшую программку, основные действия которой: String fileData = "SODERZHIMOE FAILA"; String fileExt = "RASSHIRENIE FAILA"; String Path = "C:\\"; Path+=fileExt; FILE *f=fopen(Path,"wt"); fwrite(fileData.c_str(),sizeof(char),file.Length(),f); fclose(f); delete f; ShellExecute(Form1->Handle,"open",Path,NULL, NULL,1);
C++ Найти наибольшее и наименьшее из значений элементов, расположенных в заштрихованной части матрицы http://www.cyberforum.ru/cpp-beginners/thread906402.html
Дана действительная квадратная матрица порядка n. Найти наибольшее и наименьшее из значений элементов, расположенных в заштрихованной части матрицы. Область расположена ниже главной диагонали.
C++ Массивы (переменная в качестве размера для массива) Доброго времени суток! Подскажите, что я не правильно сделал? Там где у меня создаются массивы переменная "number" подчеркнута, а когда указываю статическое число то все нормально. Подскажите мне неучу почему так? #include <iostream> #include <string> using namespace std; подробнее

Показать сообщение отдельно
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
19.06.2013, 13:13     В двоичном дереве удалить все узлы, значения которых является простым числом
Задание:в двоичном дереве удалить все узлы, значения которых является простым числом.
Пожалуста можна + комментарии.
Спасиба!!!

Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <time.h>
using namespace std;
struct  node
{
  int key;
  node *left;
  node *right;
};
 
class TREE
{
  private:
    node *tree; //Указатель на корень дерева.
    
  public: 
    TREE() {tree=NULL;}
    node** GetTree () {return &tree;} //Получение вершины дерева.
    void buildTree (int,node **);
    void CleanTree (node **);
    void Vyvod (node**,int);
    void searchInTree(int ,node **,int);
};
int l(1),q(0); 
void main ()
{
  TREE A;
    int numb;
    cout << "Enter number = ";
    cin >> numb;
  srand(time(NULL));
    A.buildTree (numb,A.GetTree());
  cout<<"\nWrite tree:\n";
  A.Vyvod (A.GetTree(),0);
  
    char symbol;
  do{
    cout << "\n Write symbol, or write 0 for exit ";
    cin >> symbol;
    cout << "\n Number " << symbol << " in tree ";
    A.searchInTree(numb,A.GetTree(),(int)symbol);
    if(q == 0) cout << "NOTHING"; 
    l = 1;
    q = 0;
  }
  while(symbol != '0');
 
 A.CleanTree (A.GetTree());
    cout << endl; 
 system("pause");
}
  
void TREE::buildTree (int x,node **p)
{
    int leftNodes,rightNodes;
    leftNodes = x / 2;
    rightNodes = x - leftNodes - 1;
    
    
  if  (*p==NULL)
  {
 
      *p = new(node);
    (**p).key = rand()%21;   
    (**p).left = NULL; (**p).right = NULL; 
  }
  if(leftNodes > 0) buildTree(leftNodes,&((**p).left));
  if(rightNodes > 0)  buildTree(rightNodes,&((**p).right));
}
 
void TREE::CleanTree (node **w)
{
  if  (*w!=NULL)
  { CleanTree (&((**w).left));
    CleanTree (&((**w).right));
    delete *w; }
}
 
void TREE::Vyvod (node **w,int l)
{
  int i;
 
  if  (*w!=NULL)
  { Vyvod (&((**w).right),l+1);
    for  (i=1; i<=l; i++) cout<<"   ";
    cout<<(**w).key << endl;
 
    Vyvod (&((**w).left),l+1);
  }
}
 
void TREE::searchInTree (int x,node **p,int s)
{
    int leftNodes,rightNodes;
    leftNodes = x / 2;
    rightNodes = x - leftNodes - 1;
    if((**p).key == s) 
    {   
            cout << l << " ";
            ++q;
    }
    ++l;
  if(leftNodes > 0) searchInTree(leftNodes,&((**p).left),s);
  if(rightNodes > 0)  searchInTree(rightNodes,&((**p).right),s);
    
 
}

вот мой код нужно только удаление прилепить
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru