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

Деревья - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Существование объекта http://www.cyberforum.ru/cpp-beginners/thread627039.html
Здравствуйте, есть довольно сложное и интересное задание Есть класс someClass нужно сделать так чтобы: 1) Его объекты можно было создавать только динамически 2) Даже созданные динамически объекты хранить нигде нельзя(не допускаются указатели на память, объект сам удаляется) То есть можно так: new someClass(); но не так: someClass *sc = new someClass(); someClass sc;
C++ Подсчёт количества подстрок Посмотрите пожалуйста нормально ли написана функция, которая считает количество подстрок? int SearchSubString(char *s1,char *s2){ int result = 0; while(*s1){ if(strstr(s1,s2)) result++; else return result; http://www.cyberforum.ru/cpp-beginners/thread627021.html
Переворот строки C++
Почему при использовании указателя ошибка, а при использование массива всё нормально? void RevStr(char *str){ char *start,*end; char t; start = str; end = &str;
Массивы: вычислить сумму положительных и количество отрицательных элементов массива C++
Здравствуйте. Столкнулся с проблемой, нужно вычислить сумму положительных и количество отрицательных элементов массива v , предварительно числа нужно ввести с клавиатуры. У меня абсолютно ничего не получается. Хотел вводить каждое число отдельно, если можно их как-то сразу все ввести было бы вообще отлично. Помогите пожалуйста, а то я вообще не вехал. То что я пытался делать ниже, но там вылазят...
C++ Добавить после каждой цифры 2 нуля http://www.cyberforum.ru/cpp-beginners/thread626946.html
Строки. Добавить после каждой цифры 2 нуля. например: ввели: а1 б2 абв получили: а100 б200 абв на данный момент при одной цифре выдает верно+мусор, при двух и более цифрах выдает ересь. #include <iostream> #include <ctype.h> #include <stdio.h>
C++ парсит TS до уровня PES пакетов Надо парсить медиа-поток MREG2-TS(Transport Stream) до уровня PES пакетов. Кто может помочь, подсказать с чего начать. Какую литературу можете посоветовать, дать ссылки на примеры. Заранее благодарю. подробнее

Показать сообщение отдельно
reznov
0 / 0 / 0
Регистрация: 21.07.2012
Сообщений: 6
25.07.2012, 05:49  [ТС]     Деревья
Теперь появилась ещё одна проблема,если вводимый элемент меньше корня,то удаляется всё нормально,если больше то удаляются узлы с меньшим значением (должно быть наоборот).
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
#include <iostream>
#include <windows.h>
using namespace std; 
 
struct Tree 
 {
  int data;
  struct Tree *left;
  struct Tree *right;
};
 
Tree *AddToTree(Tree *root, Tree *r, int x)
{
 if(!r) 
  {
    r = new Tree;
    r -> left = NULL;
    r -> right = NULL;
    r -> data = x;
    if (!root) return r; 
    if (x < root -> data) root -> left = r;
    else root -> right = r;
    return r;
  }
  if (x < r -> data)
     AddToTree(r, r -> left, x);
  else
     AddToTree(r, r -> right, x);
 
  return root; 
}
 
 
 
void inorder(Tree *root,int l)
{
  if(!root) return;
 
  inorder(root -> left,l+5);
  if (root -> data) {for(int i=0;i<l;i++) cout<<" "; cout << root -> data << endl;}
  inorder(root -> right,l+5);
}
 void del(int data,Tree *&root) { 
    if (root == NULL)
        return;
    
if(root->data >= data)
    while (root->data >= data)
    {
    Tree *sav = root;
    
        root = (root->left);
delete sav;
        sav = root;
    }
 
    
    else 
    while (root->data < data)
    {
    Tree *sav = root;
    
            root = (root->right);
        delete sav;
        sav = root;
}
     
}
 
int main ()
{
 SetConsoleOutputCP(1251);
 Tree *root = NULL;
 cout << "Введите количество узлов деревa: ";
 int n,y,x[6];
cin >> n;
 for(int i = 0; i < n; i++)
{
    cout << "Введите значение узла: ";
    cin >> x[i];
    root = AddToTree(root, root, x[i]);
}
 inorder(root,0);
cout<<"\nВведите искомое число\n"<<endl;
cin>>y;
cout<<endl;
del(y,root);
inorder(root,0);
system("pause");
return 0;
}
 
Текущее время: 03:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru