wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Quiz sugli Alberi Binari C#

Total questions: 21

Worksheet time: 11mins

Name
Class
Date
1.

Quale delle seguenti affermazioni descrive correttamente un albero binario completo?

a)

Ogni livello tranne l'ultimo è completamente riempito.

b)

Ogni nodo ha due figli e tutte le foglie sono allo stesso livello.

c)

Ogni nodo ha il valore maggiore di tutti i suoi discendenti sinistri.

d)

Ogni nodo ha solo un figlio.

2.

In un albero binario di ricerca (BST), quale regola deve essere rispettata dai valori dei nodi?

a)

Ogni nodo ha il valore maggiore di tutti i suoi discendenti sinistri e minore di quelli destri.

b)

Ogni nodo ha due figli.

c)

Tutti i nodi hanno lo stesso valore.

d)

Ogni livello è completamente riempito.

3.

Qual è la differenza principale tra un albero binario perfetto e un albero binario completo?

a)

In un albero perfetto tutte le foglie sono allo stesso livello, mentre in un albero completo solo l’ultimo livello può non essere pieno.

b)

In un albero perfetto ogni nodo ha un solo figlio, mentre in un albero completo ogni nodo ha due figli.

c)

In un albero perfetto i valori sono ordinati, mentre in un albero completo no.

d)

Non c’è alcuna differenza.

4.

Analizza la seguente definizione di classe Nodo in C#: quale dei seguenti campi rappresenta il figlio sinistro di un nodo?

a)

public Nodo Sinistro;

b)

public int Valore;

c)

public Nodo Destro;

d)

public Nodo Figlio;

5.

Supponendo di voler implementare un algoritmo di inserimento in un BST, quale proprietà fondamentale dell’albero binario di ricerca devi rispettare durante l’inserimento di un nuovo nodo?

a)

Il valore del nuovo nodo deve essere inserito a sinistra se minore e a destra se maggiore rispetto al nodo corrente.

b)

Il nuovo nodo deve essere sempre inserito come figlio sinistro.

c)

Il nuovo nodo deve essere sempre inserito come figlio destro.

d)

Il nuovo nodo deve essere inserito solo se il livello è pieno.

6.

Quale delle seguenti sequenze rappresenta correttamente la visita Preorder di un albero binario?

a)

nodo -> sinistro -> destro

b)

sinistro -> nodo -> destro

c)

sinistro -> destro -> nodo

d)

destro -> nodo -> sinistro

7.

Durante la cancellazione di un nodo in un BST, cosa succede se il nodo da eliminare ha un solo figlio?

a)

Si elimina direttamente

b)

Si sostituisce con il figlio

c)

Si scambia con la radice

d)

Si lascia invariato

8.

Quale condizione viene verificata per decidere se inserire un nuovo valore nel sottoalbero sinistro durante l'inserimento in un BST?

a)

Se valore > radice.Valore

b)

Se valore < radice.Valore

c)

Se valore == radice.Valore

d)

Se radice è una foglia

9.

Supponiamo di voler cercare un valore in un BST. Se il valore cercato è minore di radice.Valore, quale sarà il prossimo passo?

a)

Cercare nel sottoalbero destro

b)

Restituire true

c)

Cercare nel sottoalbero sinistro

d)

Restituire false

10.

Confronta le visite Inorder e Postorder di un albero binario. Qual è la principale differenza nell'ordine di visita del nodo?

a)

In Inorder il nodo viene visitato per primo, in Postorder per ultimo

b)

In Inorder il nodo viene visitato per ultimo, in Postorder per primo

c)

In Inorder il nodo viene visitato tra sinistro e destro, in Postorder dopo sinistro e destro

d)

In Inorder il nodo viene visitato dopo destro, in Postorder dopo sinistro

11.

Qual è lo scopo della visita inorder in un albero binario di ricerca (BST) dopo aver inserito una lista di numeri?

a)

Verificare l'ordinamento crescente dei numeri inseriti

b)

Calcolare la profondità massima dell'albero

c)

Trovare il nodo con il valore minimo

d)

Controllare se l'albero è bilanciato

12.

Quale suggerimento viene dato per verificare se un albero binario è effettivamente un BST?

a)

Controllare che ogni nodo rispetti i vincoli di massimo e minimo rispetto ai suoi antenati

b)

Calcolare la profondità massima dell’albero

c)

Eseguire una visita preorder

d)

Trovare il nodo con due figli

13.

Qual è il risultato della funzione Profondita(Nodo nodo) se il nodo passato è null?

a)

0

b)

1

c)

-1

d)

Math.Max

14.

Perché si utilizza Math.Max(sin, des) + 1 nella funzione Profondita?

a)

Per determinare la profondità massima tra i sottoalberi sinistro e destro e aggiungere il nodo corrente

b)

Per trovare il valore minimo nell’albero

c)

Per ordinare i nodi in modo crescente

d)

Per verificare se l’albero è un BST

15.

Supponendo di avere una lista di numeri interi, quale sarebbe il primo passo per creare un BST secondo l’esercizio 1?

a)

Leggere la lista da tastiera e inserire ogni numero nell’albero binario di ricerca

b)

Calcolare la profondità massima dell’albero

c)

Verificare se l’albero è bilanciato

d)

Stampare la lista in ordine decrescente

16.

Qual è la complessità temporale media per cercare un valore in un albero binario di ricerca (BST) bilanciato?

a)

O(n)

b)

O(log n)

c)

O(n log n)

d)

O(1)

17.

Quale metodo viene utilizzato per rimuovere un nodo con due figli in un BST?

a)

Rimuovi solo il figlio sinistro

b)

Trova il nodo successore e sostituisci

c)

Scambia con il nodo padre

d)

Elimina direttamente il nodo

18.

Qual è la funzione principale della visita Postorder in un albero binario?

a)

Stampare i nodi in ordine crescente

b)

Eliminare i nodi foglia

c)

Calcolare la profondità dell'albero

d)

Visitare i nodi dopo aver visitato i figli

19.

Qual è il risultato della visita Postorder in un albero binario di ricerca (BST) dopo aver inserito una lista di numeri?

a)

Stampare i nodi in ordine crescente

b)

Stampare i nodi in ordine decrescente

c)

Visitare i nodi dopo aver visitato i figli

d)

Calcolare la profondità dell'albero

20.

Quale delle seguenti affermazioni è vera riguardo alla complessità temporale di un albero binario di ricerca (BST) non bilanciato?

a)

La complessità è O(n) nel caso peggiore

b)

La complessità è sempre O(log n)

c)

La complessità è O(n log n)

d)

La complessità è O(1) per tutte le operazioni

21.

Durante l'inserimento di un nuovo nodo in un BST, cosa succede se il valore del nuovo nodo è uguale al valore di un nodo esistente?

a)

Il valore esistente viene aggiornato

b)

Il nuovo nodo viene inserito a destra

c)

Il nuovo nodo viene inserito a sinistra

d)

Il nuovo nodo viene ignorato