#include <iostream>
#include <cstdlib>
#include <ctime>
#include <queue>
#include <string>
using namespace std;
int tabs = 0;
queue <int *> myqueue;
struct Branch {
int Data;
Branch *LeftBranch;
Branch *RightBranch;
};
void addToTree(int aData, Branch *&aBranch);
void print(Branch *aBranch);
int find(Branch *Root, int *N);
int main() {
int* N = new int;
cout << "Enter number for find in tree" << endl;
cin >> *N;
cin.get();
Branch *Root = 0;
int* arr = new int[15];
srand(time(NULL));
for (int i = 0; i < 15; i++) {
arr[i] = rand() % 198 - 99;
}
for (int i = 0; i < 15; i++) {
addToTree(arr[i], Root);
}
find(Root, N);
print(Root);
return 0;
}
void addToTree(int aData, Branch *&aBranch) {
if (!aBranch) {
aBranch = new Branch;
aBranch->Data = aData;
aBranch->LeftBranch = 0;
aBranch->RightBranch = 0;
return;
}
else if (aBranch->Data > aData) {
addToTree(aData, aBranch->LeftBranch);
}
else {
addToTree(aData, aBranch->RightBranch);
};
}
void print(Branch *aBranch) {
if (!aBranch) return;
tabs++;
print(aBranch->LeftBranch);
for (int i = 0; i < tabs; i++) cout << " ";
cout << aBranch->Data << endl;
print(aBranch->RightBranch);
tabs--;
return;
}
int find(Branch *Root, int n) {
if (Root->Data % n == 0) {
myqueue.push(&Root->Data);
return 0;
}
if (Root->LeftBranch->Data < n) {
return find(Root->LeftBranch, n);
}
else {
return find(Root->RightBranch, n);
}
return 0;
}
Помогите исправить код.
Сигнатура функции int find(Branch *Root, int *N);
не соответствует сигнатуре реализованной функции int find(Branch *Root, int n)
. Соответственно компилятор не находит определения подходящей функции find
и ругается. Объявление и реализацию можно было бы и не разносить.
Вы объявляете функцию
int find(Branch *Root, int *N);
и вызываете именно ее!
find(Root, N); // N - int*
Но реализуете совсем другую функцию...
int find(Branch *Root, int n) {
if (Root->Data % n == 0) {
...
Согласуйте объявление и определение...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Прямая трансляция пишется на диск и при этом раздаётся в браузер в реальном времени всем, кто её запросил
Задача: Надо рассчитать возраст пользователя, в днях, часах, минутахВводится дата рождения и сегодняшняя дата
При создании джава-архива для проекта содержащего текстовые файлы, текстовые файлы не добавляются в джава-аржив(лежат рядом с папкой src)