• Non ci sono risultati.

{ ALGORITMI E STRUTTURE DATI – SCIENZE DI INTERNET

N/A
N/A
Protected

Academic year: 2021

Condividi "{ ALGORITMI E STRUTTURE DATI – SCIENZE DI INTERNET"

Copied!
3
0
0

Testo completo

(1)

ALGORITMI E STRUTTURE DATI – SCIENZE DI INTERNET

19 Febbraio 2003

Esercizio 1

T(n) <=

{

c1 n <= 10

2T(n/2)+c2 n> 10 c1, c2 costanti

a=2 b=2

= (log 2)/(log 2) =1  =0 T(n) è O(n)

Esercizio 2

Procedure DUPLICA3(var L:lista);

var p:posizione; a:tipoelem;

begin

p := PRIMOLISTA(L);

while not FINELISTA(p, L) do begin a := LEGGILISTA(p, L);

if (a mod 3) = 0 then begin p := SUCCLISTA(p, L);

INSLISTA(a, p, L) end;

p := SUCCLISTA(p, L) end

end;

(2)

Esercizio 3

Procedure PARI(var T:albero, u:nodo);

begin

if (u^.sinistro = nil) and (u^.destri = nil) and (u^.elemento mod 2 = 0) then begin

if u^.genitore = nil then T:=nil else if u^.genitore^.sinistro = u then

u^.genitore^.sinistro := nil else

u^.genitore^.destro := nil;

dispose(u) end else begin

if u^.sinistro <> nil then PARI(T, u^.sinistro);

if u^.destro <> nil then PARI(T, u^.destro) end

end;

Esercizio 4

vettori di adiacenza (in grigio) NODI

1 2 3 4 5 6

1 5 7 10 13 15

Ordine visita DFS:

5 (5,1) 1 (1,2) 2 (2,1)(2,4) 4 (4,1)(4,2)(4,3) 3 (3,1)(3,4)(3,5)(1,3)(1,4)(1,5)(5,3) ARCHI

2 3 4

A(1)

5 1 4

A(2)

1 4 5

A(3)

1 2 3

A(4) 1

2 3 4 5 6 7 8 9 10 11 12 13 14

1 3

A(5)

(3)

Esercizio 5

Procedure INTERVALLO(var inizio, fine, s, d : integer): boolean;

var mezzo: interger;

begin

if inizio<=fine then begin

mezzo := (inizio + fine) div 2;

if (V[mezzo] > s) and (V[inizio] < d) then INTERVALLO := true else begin

if V[mezzo] <= s then

INTERVALLO := INTERVALLO(mezzo+1, fine, s, d);

if V[inizio] <= d then

INTERVALLO := INTERVALLO(inizio, mezzo, s, d) End

End else

INTERVALLO := false end;

Esercizio 6

Come la CRICCA (pagina 259 del libro di testo): scambiare “appartiene” con “non appartiene”

Riferimenti

Documenti correlati

Si scriva una procedura Pascal, basata sulla ricerca binaria, per individuare in tempo O(log n) l’unico intero dell’intervallo 1..n+1 che non compare in V.... Si scriva

[r]

[r]

il ciclo precedente deve continuare fino a quando non sia stata scorsa tutta la lista, così da preservare l’ordinamento interno delle sequenze pari e dispari Come preannunciato il

Esistono due classi di memoria: automatica e statica La classe di memoria automatica è relativa a quegli oggetti locali ad un blocco (funzione o programma) che viene liberata

E responsabilità del programmatore controllare che il numero ed il tipo degli argomenti passati ad una funzione corrisponda con quanto specificato nella dichiarazione della

L Insertion Sort è uno algoritmo di ordinamento molto efficiente per ordinare un piccolo numero di elementi. L idea di ordinamento è quella che potrebbe usare un persona

L’array A[p…r] viene “suddiviso” in due sotto- array “non vuoti” A[p… q] e A[q+1…r] in cui ogni elemento di A[p…q] è minore o uguale ad ogni elemento