Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Парадокс: значение переменной равно её адресу Друзья! Вот код, в нём всё понятно. Выводятся одинаковые значения. Но ведь этого не может быть! Хотя бы потому не может, что по адресу, который выводится первым, должно находиться значение символа '0'! Ну, то есть первая и третья строка вывода предсказуемы. Но вторая вообще ни в какие ворота не лезет. Помогите разобраться, пожалуйста. Спасибо. #include <stdio.h> int main () { char s =... https://www.cyberforum.ru/ cpp-beginners/ thread53148.html Система двух линейных уравнений C++
Задача на решение системы, состоящей из двух линейных уравнений, по формуле Крамера. Т.е. через определитель вотрого порядка. #include <iostream> #include <conio.h> using namespace std; int non_main() { cout << "<=EQUATION SYSTEM=>\n\nHere there are two linear equations: \n" << "a1*x1 + b1*x2 = c1\na2*x1 + b2*x2 = c2\n\nEnter numbers:\n";
C++ Умножение матриц Решенная задача на умножение матриц для сборника. Матрицы вводятся с клавиатуры построчно. #include <iostream> #include <conio.h> using namespace std; void matrix_output(int ** MATRIX, int STRINGS, int COLUMNS); int main() { https://www.cyberforum.ru/ cpp-beginners/ thread53080.html C++ Вычислить сумму первых N элементов ряда https://www.cyberforum.ru/ cpp-beginners/ thread53077.html
Помогите пожалуйста решить такую задачу: Вычислить сумму первых N элементов ряда:X-X^2/2+X^3/3-X^4/4+X^5/5..... . Вычисление проводить до тех пор пока модуль очередного элемента больше E(эпсиолон).
Объявление функции C++
Всем доброго времени суток! Подскажите пожалуйста, как правильно объявить функцию, которая возвращает указатель на двумерный массив. И какое именно значение будет возвращать эта функция?
C++ Поменять местами первую и последнюю цифры числа Поменять местами первую и последнюю цифры числа. Помогите пожалуйста, а то с C++ вообще никогда не приходилось работать :( https://www.cyberforum.ru/ cpp-beginners/ thread53068.html
C++ Небольшая помощь Ктото может написать небольшой модуль которий будет считивать какуюта інформацию с файла *тхт каждих 2 сек ?? спс https://www.cyberforum.ru/ cpp-beginners/ thread53058.html E2089) C++
Доброго времени суток! При компиляции выпала ошибка - Calc.cpp(237): E2089 Identifier 'use_func' cannot have a type qualifier Возникла она при попытке переделать обычный код в код, использующий namespace для разделения данных по модулям... namespace Parser{ double use_func(string f_name); }
C++ строки матрици https://www.cyberforum.ru/ cpp-beginners/ thread53043.html
Упорядочить строки матрицы размером М*N за увеличением минимального елемента строки.
C++ Найти числа Найти два целых чила m и n, которые в приперемножение m*n не изменяют своего значение, если поменять местами их елементы (например, 38 и 83) https://www.cyberforum.ru/ cpp-beginners/ thread53038.html
2-связный список на основе указателей next и pred C++
Помогите найти ошибку в нахождении минимального элемента:#include "iostream" #include "conio.h" #include "stdlib.h" using namespace std; struct Item { int data; Item *pred, *next; }
C++ 2-связный список на основе 2х стэков Помогите создать 2-связный список на основе 2х стэков. https://www.cyberforum.ru/ cpp-beginners/ thread52982.html
12 / 12 / 5
Регистрация: 05.07.2009
Сообщений: 147
Записей в блоге: 1
0

Бинарное Дерево - C++ - Ответ 284954

29.09.2009, 15:36. Показов 1250. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Народ помогите сделать конструктор копирования для бинарного дерева вот мой код
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#pragma once
 
template <class T>
struct TreeEl{
  T data; 
  TreeEl<T> *pLeft,*pRight,*pParent;
  TreeEl(T d):data(d),pLeft(0),pRight(0),pParent(0)
  {}
};
template <class T>
class Tree{
  int N;
  TreeEl<T>*pRoot;
  void insertdata(TreeEl<T>*rt,T d);
  void printBy(TreeEl<T>*rt);
  bool delBy(TreeEl<T>*rt);
  TreeEl<T>* FindBy(T d,TreeEl<T> *rt);
public:
  T*Find(T d);
  Tree(void);
  Tree(Tree<T>&ob);
  void insert(T d);
  void print();
  bool delRoot();
  ~Tree(void);
  bool del(T d);
};
template <class T>
Tree<T>::Tree(Tree<T>&ob):pRoot(0),N(0){
  (*this).Tree<T>::~Tree();
}
template <class T>
Tree<T>::Tree(void):pRoot(0),N(0)
  { }
template <class T>
Tree<T>::~Tree(void){
  while(delRoot());
}
template <class T>
//////////////////////||||||||insert|||||||||||||/////////////////
void Tree<T>::insert(T d){
  if(pRoot==NULL){
      TreeEl<T>*pNew=new TreeEl<T>(d);
      pRoot=pNew;
      pNew->pParent=NULL;
      N++;
      return;
  }else{
      insertdata(pRoot,d);
  }
}
/////////////////////////////////////////////////////////
template <class T>
void Tree<T>::insertdata(TreeEl<T>*rt,T d){
  if(rt->data>d){
    if(rt->pLeft==NULL){
      TreeEl<T>*pNew=new TreeEl<T>(d);
      rt->pLeft=pNew;
      pNew->pParent=rt;
      N++;
      return;
    }
    insertdata(rt->pLeft,d);
  }else{
    if(rt->pRight==NULL){
      TreeEl<T>*pNew=new TreeEl<T>(d);
      rt->pRight=pNew;
      pNew->pParent=rt;
      N++;
      return;
    }
    insertdata(rt->pRight,d);
  }
}
///////////|||||||||||||||||print||||||||||||||////////////////////
template <class T>
void Tree<T>::printBy(TreeEl<T>*rt){
  if (rt==NULL)return;
  printBy(rt->pLeft);
  cout<<rt->data<<"\t";
  printBy(rt->pRight);
}
template <class T>
void Tree<T>::print(){
  printBy(pRoot);
}
////////////////////////////////////////////////////////////////////
template <class T>
bool Tree<T>::delBy(TreeEl<T>*rt){
  TreeEl<T>*p=rt;
  if(rt->pLeft){
    rt=rt->pLeft;
    while(rt->pRight)
      rt=rt->pRight;
    p->data=rt->data;
    delBy(rt);
  }else{
    if(rt->pRight){
      rt=rt->pRight;
      while(rt->pLeft)
        rt=rt->pLeft;
      p->data=rt->data;
      delBy(rt);
    }else{
      if(rt->pParent){
        if(rt->pParent->pRight==rt){
          rt->pParent->pRight=0;
        }
        else{
          rt->pParent->pLeft=0;
        }
      }//if
      delete rt;
      N--;    
      return 1;
    }//else
  }//else
}//fn
template <class T>
bool Tree<T>::del(T d){
    TreeEl<T>*rt=Find(d,pRoot);
    if(rt==0)
        return false;   
    if(rt->pLeft==NULL&&rt->pRight==NULL){
        delete rt;
        rt=NULL;
        return true;
    }
    delBy(rt);
    return true;
}
 
template <class T>
bool Tree<T>::delRoot(){
    if(pRoot==NULL) return false;
    if(pRoot->pLeft==NULL&&pRoot->pRight==NULL){
    delete pRoot;
    pRoot=NULL;
        return true;
  }
    delBy(pRoot);
    return true;
}
/////////////////////////////////////////////////////////////////////
 
template <class T>
TreeEl<T>* Tree<T>::FindBy(T d,TreeEl<T> *rt){
  if(!rt)return 0;
  //if(rt->data==d)return rt;
  while(rt&&rt->data!=d){
    if(rt->data>d)rt=rt->pLeft;
    else if(rt->data<d)rt=rt->pRight;
  }
  return rt;
}
template <class T>
T*Tree<T>::Find(T d){
  TreeEl<T>*p;
  p=FindBy(d,pRoot);
  if(p==0)return 0;
  return &p->data;
}


Вернуться к обсуждению:
Бинарное Дерево C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2009, 15:36
Готовые ответы и решения:

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при...

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

Бинарное Дерево
struct Tree { int value; Tree *l, *r; }; void add(Tree *&amp;obj, int value) { if (obj ==...

Бинарное дерево
Помогите пожалуйста с программой. Нужно сделать обход, слева и справа(функции get_left и...

0
29.09.2009, 15:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2009, 15:36
Помогаю со студенческими работами здесь

Бинарное дерево
Привет Делаю бинарное дерево, пытаюсь добавить элемент. Что делаю не так? Класс дерева...

Бинарное дерево
Задание сделать бинарное дерево, но при добавлении появилась проблема, не могу разобраться с...

Бинарное дерево
Нужно записать в дерево и вывести в форматированном виде каталог файлов(типа windows) на вход даны...

Бинарное дерево
Всем доброго времени суток! Задача такая: Реализовать бинарное дерево в программе...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru