#595 · Subiectul II · Programare
Rădăcina și matricea de adiacență a unui arbore dat prin vectorul de tați
✓ Rezolvare explicatăBucurești 2020 · nr. 23
Enunț
În fișierul atestat.in, pe prima linie se află un număr natural n (2≤n≤100), numărul de noduri ale unui arbore, iar pe a doua linie n numere naturale, vectorul de tați al arborelui. Nodurile sunt etichetate de la 1 la n.
Se consideră subprogramele:
radacina, cu doi parametri: vectorul de tațiv(cel mult 100 de elemente) șin(2≤n≤100). Returnează eticheta nodului rădăcină;construieste, cu trei parametri: vectorul de tațiv,nși matricea pătraticăacunlinii șincoloane. Construiește în memorie și furnizează prinamatricea de adiacență a arborelui.
a. Scrieți definiția completă a subprogramului radacina.
b. Scrieți definiția completă a subprogramului construieste.
c. Scrieți un program care, folosind apeluri utile ale celor două subprograme, citește datele din atestat.in și scrie pe prima linie a lui atestat.out nodul rădăcină, iar pe următoarele n linii câte n valori din {0, 1}, separate prin spațiu, matricea de adiacență a arborelui.
Exemple
atestat.in |
atestat.out |
Explicații |
|---|---|---|
43 4 4 0 |
40 0 1 00 0 0 11 0 0 10 1 1 0 |
v[i] este tatăl nodului i; rădăcina are tatăl 0, deci este nodul 4. Muchii: 1–3, 2–4, 3–4 |
Rezolvare
Exersează mai departe
Probleme cu aceeași tehnică
#596ProgramareEliminarea nodurilor de grad minim și numărul muchiilor rămase (nrElem1 și sumaElem)#560ProgramareArbore dat prin vectorul de tați: rădăcina, nodurile cu cei mai mulți fii și frunzele (subprogramul pozitie)#597ProgramareNodurile izolate dintr-un graf dat prin matricea de adiacență (citire și suma)#045ProgramareSă se afişeze indicii coloanelor care au toate elementele impare#048ProgramareSă se afişeze cel mai mare element din matrice şi poziţiile pe care apare#049ProgramareSă se afişeze cel mai mic element din matrice şi poziţiile pe care apare