#include <iostream>
#include <windows.h>
using namespace std;
class A {
friend A* tree(const string& s, A* a);
private:
int count;
string s;
A* right=0, * left=0;
public:
A(const string &s="empty") :s(s){}
string get_s() {
return s;
}
int get_c() {
return count;
}
};
//сравнение 2 строк
int compare(string s1, string s2) {
char* text1 = new char[s1.length()];
char* text2 = new char[s2.length()];
for (size_t i = 0; i < s1.length(); i++) {
text1[i] = s1[i];
}
for (size_t i = 0; i < s2.length(); i++) {
text2[i] = s2[i];
}
int x = strcmp(text1, text2);
printf("%s\n\t%d\n", text1, x);
free(text1);
free(text2);
return x;
}
A* tree(const string &s, A* a) {
cout << (!a);
if (!a) {
a->s = s;
cout << 5;
return a; //ошибка, не возвращает указатель на обьект класса
}
else {
cout << a->get_s();
int x = compare(s, a->get_s());
if (!x) {
a->count++;
return a;
}
else if (x > 0) {
}
}
}
int main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
A *node=0;
int n;
string s;
cout << "Введите кол-во веток бинарного дерева:\n";
//cin >> n;
node = tree("hi", node); //не выполняется из-за ошибки в функции A* tree(const string &s, A* a)
cout << node->get_c()<<555;
node = tree("hi", node);
cout << node->get_s()<<endl;
cout << node->get_c();
cout << 5;
}