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

Класс для бинарного дерева - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Что означает данная строка. Указатели http://www.cyberforum.ru/cpp-beginners/thread1086911.html
void varInDynamicMemory(){ int *p1; int i=12; float *p2; float f=3.14; double *p3; double d=4.789; cout<<"Исходные значения для размещения в динамической памяти:\n"; cout<<"int: ";cin>>i; cout<<"float: ";cin>>f; cout<<"double: ";cin>>d; int iP1=(int)p1; int iP2=(int)p2;
C++ Найти сумму модулей элементов массива, расположенных после первого элемента, равного нулю Все парные элементы заменить их квадраты, а не парные умножить на 2. Найти сумму модулей элементов массива, расположенных после первого элемента, равного нулю. сделать только с массивом сказано http://www.cyberforum.ru/cpp-beginners/thread1086896.html
Вывести квадрат введенного с клавиатуры числа в диапазоне от 0 до 10 включительно C++
Написать программу, которая выводит квадрат, введенного с клавиатуры, числа в диапазоне от 0 до 10 включительно. При введении отрицательного числа осуществить выход из цикла
Функция,меняющая местами первый и последний элементы массива C++
Напишите функцию меняющую местами первый и последний элементы массива. Можете помочь?
C++ Оператор if или где скрыта ошибка http://www.cyberforum.ru/cpp-beginners/thread1086885.html
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { int p, q; for(p=0; p<=100; p++){ for(q=0; q<=100; q++) if(p*2-2*q*2 == 1) { this->richTextBox1->Text= p.ToString()+" and "+q.ToString()+"\n"; } }
C++ Организация наследования классов. Уровни доступа Дана матрица размера M × N и целое число K (1 ≤ K ≤ N). После столбца матрицы с номером K вставить столбец из единиц. Подскажите как это все организовать, хотябы наброски. Не понимаю темы насчет наследования и уровней доступа. подробнее

Показать сообщение отдельно
vovacreme
-16 / 61 / 13
Регистрация: 14.01.2014
Сообщений: 145
01.02.2014, 14:53     Класс для бинарного дерева
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
//--------------------------
struct  ElemT
{
   int Sod;
   ElemT* pLeft;
   ElemT* pRight;
}*pHead = NULL;
void AddUzel(ElemT* pCur,int value) {     // добавление конкретного узла дерева
    if(value < pCur->Sod)
        { if(pCur->pLeft != NULL)         // если значение меньше, двигаемся по "левой ветке"
              AddUzel(pCur->pLeft, value);
          else
          {  pCur->pLeft = new ElemT;
             pCur->pLeft->Sod = value;
             pCur->pLeft->pLeft=NULL;
             pCur->pLeft->pRight=NULL;
          }
        }
    if(value > pCur->Sod)                 // иначе двигаемся по правой 
        { if(pCur->pRight != NULL)
             AddUzel(pCur->pRight, value);
          else
           {
             pCur->pRight = new ElemT;
             pCur->pRight->Sod = value;
             pCur->pRight->pLeft=NULL;
             pCur->pRight->pRight=NULL;
           }
        }
    if(value == pCur->Sod)                
        { cout<<value<<" is already in tree"<<endl;
          return;
        }
}
void Add2Tree(int value)                  // проверка, не пустое ли дерево
{
    if(pHead == NULL)                     // если дерево пустое - создадим первый узел
     {
        pHead = new ElemT;
        pHead->Sod = value;
        pHead->pLeft=NULL;
        pHead->pRight=NULL;
        return;
     }
    AddUzel(pHead, value);                // если в макушке уже что-то есть - добавляем слева или справа 
}
//---------------------------
// в итоге получае упорядоченное дерево, то есть меньшие элементы расположены 
// "слева", а большие - "справа". Рекурсивно распечатываем это дерево от меньшего 
// элемента к большему
void PrintTree(ElemT* pCur)
{
    if (pCur!=NULL)
    {
        PrintTree(pCur->pLeft);
        cout<<pCur->Sod<<' ';
        PrintTree(pCur->pRight);
    }
}
//---------------------------
int main()
{
    Add2Tree(10);
    Add2Tree(20);
    Add2Tree(5);
    Add2Tree(100);
    Add2Tree(-11);
    PrintTree(pHead);
    return 0;
}
 
Текущее время: 07:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru