CyberStars

Is It a Binary Search Tree

Citește un arbore binar și afișează true dacă e un arbore binar de căutare, false dacă nu. Un arbore gol este unul.

Cum se scrie un arbore

Un arbore vine pe o singură linie, citit nivel cu nivel, de la stânga la dreapta. După un nod vin două locuri pentru copiii lui, întâi cel stâng, iar un copil care lipsește se scrie null. null-urile de la sfârșit se lasă deoparte, iar un arbore gol e doar null.

        8
      /   \
     4     11
    /     /  \
   2     9    15

Arborele acesta se scrie 8 4 11 2 null 9 15: întâi 8, apoi copiii lui, 4 și 11, apoi copiii lui 4 (2 și niciunul), apoi cei ai lui 11 (9 și 15). Copiii lui 2, 9 și 15 ar fi toți null la sfârșit, așa că se lasă deoparte.

Într-un arbore binar de căutare orice valoare din subarborele stâng al unui nod e mai mică decât valoarea nodului, orice valoare din subarborele drept e mai mare, iar nicio valoare nu se repetă. Arborele de mai sus e unul.

Codul de început citește deja datele și construiește arborele din Nod-uri cu valoare, stanga și dreapta, apoi afișează true sau false după ce întoarce este_arbore_de_cautare. Tu scrii este_arbore_de_cautare.

Date de intrare

  • Linia 1: arborele, scris ca mai sus. Arborele are cel mult 500 de noduri, fiecare valoare între -10^4 și 10^4. Valorile se pot repeta.

Rezultat

true dacă arborele e un arbore binar de căutare, altfel false.

Exemple

Intrare:
8 4 11 2 null 9 15

Ieșire:
true
Intrare:
8 4 11 2 9

Ieșire:
false

9 e copilul drept al lui 4, deci e în subarborele stâng al lui 8, dar e mai mare decât 8.

Intrare:
5 5

Ieșire:
false

Două valori egale nu pot fi amândouă într-un arbore binar de căutare.

Intrare:
null

Ieșire:
true

Un arbore gol e un arbore binar de căutare.