Pagini recente » Istoria paginii utilizator/arhip_georgiana_323ca | hai | Cod sursa (job #1370382) | Istoria paginii runda/vot/voteaza_miruna | Cod sursa (job #3131420)
#include <iostream>
#include <fstream>
struct Node {
int c;
Node* st;
Node* dr;
};
Node* adaugare(Node* rad, int c) {
if (rad == nullptr) {
Node* nod_nou = new Node();
nod_nou->c = c;
nod_nou->st = nullptr;
nod_nou->dr = nullptr;
return nod_nou;
}
if (c < rad->c) {
rad->st = adaugare(rad->st, c);
} else if (c > rad->c) {
rad->dr = adaugare(rad->dr, c);
}
return rad;
}
bool cautare(Node* rad, int c) {
if (rad == nullptr) {
return false;
}
if (c == rad->c) {
return true;
}
if (c < rad->c) {
return cautare(rad->st, c);
} else {
return cautare(rad->dr, c);
}
}
int main() {
std::ifstream f("hashuri.in");
std::ofstream g("hashuri.out");
int N;
f >> N;
Node* rad = nullptr;
for (int i = 0; i < N; i++) {
int op, x;
f >> op >> x;
if (op == 1) {
rad = adaugare(rad, x);
} else if (op == 3) {
bool rez = cautare(rad, x);
g << rez << '\n';
}
}
f.close();
g.close();
return 0;
}