Cod sursa(job #3131420)

Utilizator AlezuuZugravu Alexandra-Daniela Alezuu Data 20 mai 2023 00:31:56
Problema Hashuri Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.2 kb
#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;
}