Documente Academic
Documente Profesional
Documente Cultură
la Informatică
Crearea si afisarea:
Type adresacelula=^celula;
Celula=record
Info:string;
Urm:adresacelula;
End;
Var p,r,q:adresacelula;
S:string;
I:integer;
Procedure creare;
Begin
P:=nil;
Write(‘s=’);
Readln(s);
New(r);
R^.info:=s;
R^.urm:=nil;
P:=r;
Q:=r;
Write(s);
While not eof do
Begin
Readln(s);
Write(‘s’);
New(r);
R^.info:=s;
R^.urm:=nil;
Q^.urm:=r;
Q:=r;
End;
End;
Procedure afisare;
Begin
R:=p;
While r<>nil do
Begin
Writeln(r^.info);
R:=r.urm;
End;
End;
Begin
Creare;
Afisare;
End.
Introducerea:
New(r);
R^.pred:=s;
S:=r;
Extragerea:
R:=s;
S:=s^.pred;
Dispose(r);
Afisare:
Procedure afisare;
Var r:adresacelula;
Begin
If s=nil
Then writeln(‚Stiva este vida’)
Else begin
Writeln(‚Stiva include elementele’)’
R:=s;
While r<>nil do begin
Writeln(r^.info);
R:=r^.pred;
End;
endl
6. Explicaţi structura dinamică de date coada. Introducerea, extragerea unui
element, afişarea cozii.
Coada este o lista unidirectionala in care toate introducirile se efectueaza la ununl din
capre ,iar extragerea la celalt capat.
Datele pentru crearea si prelucrarea cozii;
Type adresacelula=^celula;
Celula=record
Info:string;
Urm:adresacelula;
End;
Var p,u:adresacelula;
Introducerea:
New(r);
R^.urm:=nil;
U^.urm:=r
U:=r;
Extragerea:
R:=p;
P:=p^.urm;
Dispose(r);
Afisarea:
Procedure afisare;
Var r:adresacelula;
Begin
If p=nil then writeln(‚coda este vida’)
Else begin
Write(‚coada include elementele’);
R:=p;
While
Writeln(r^.info);
R:=r^.urm;
End;
End;
Definitie:
• Nod –o variabila dinamica de tipul record care contine cimp destinat memorarii
informatiei utile si doi indicatori de adresa
• Un nod este un arbore binary
• Un nod ce contine legaturi catre alti doi arbori binary este un arbore binar
• Un arbore binar este un arbore orientat cu proprietatea că pentru orice virf cei doi
descendenţi sînt desemnaţi ca descendent stîng respectiv descendent drept (fiu
dreapta.
Algoritm iterativ:
-se creaza nodul radacina
-nodul-radacina se introduce intr-o coada
-pntru fiecare nod exttras din coada se creeaza daca exista descdentul sting si
descendentul drept;
-nodurile nou-create se introduc in coada
-procesul de construire a arborelui se inchee cind coada devine vida
Algoritm recursiv
-se creeaza nodul-radacina;
-se construeste subarborele sting
-se construeste subarborele drept;
Arbore binar de cautare-un arbore binar in care cheia oricarui nod este mai mare
decit cheile nodurilor din subarborele sting si mai mica decit toate chile nodurilor
din subarborele drept.De aici rezulta ca daca parcurgem un arbore binar de cautare
prin SRD se va ranha nodurile in ordine crescatoare.
Operatii:
Catarea si inserearea unui nod
Cautarea -usor se realizeaza prin recursie.
Daca radacina contine cheia necesara,cautarea se opreste aici
Daca nu,atunci in functie de rezultatul compararii cheilor respective cautare
contrinua in subarborele sting sau drep.
Inserarea:
-daca arborele eset vid ,el se subtitue cu nodul care urmeaza sa fie inserat
-daca nu este vid,in functie derezultatul compararii cheilor respective ,inserarea se
face in subarborele sting sau cel drept.
Schema generala:
While existaelement do
Begin
Alegeunelement(x);
Includeelementul(x);
End.
Complexistate:
Complexitate generala a acestei metode poate fi evaluate urmind schema generala de de
calcul.De obicei timpul cerut de procedurile din schema generala este de ordinal n.In
component ciclului while aceste procedure se executa de cel mult n ori.Astfel metoda
greedy poate fi aplicata numai atunci cind din enuntul problemei poate fi dedus regula care
asigura selectia directa a elementelor necesare din multimea A.
Complexitatea:
..temporala a algoritmilor bazati pe metoda descisa mai sus este ca si in cazul trierii
,o(mn),m=max(m1,m2...mn)
13. Explicaţi structura generală a algoritmilor bazaţi pe metoda desparte şi
stăpânește. Complexitatea metodei.
Complexitattea:
Temporala depinde de numarul de subprobleme k in care este divizata problema curenta
si de complexitatea algoritmilor destinati rezolvarii directe a subproblemelor
respective.Programale elaborate in baza acestei metode sunt simple si au timpul de executie
mic.Cu regret aceasta tehnica poate fi apliata numai atunci cind prelucrarea ceruta admite
divizarea problemei curente in subprobleme de dimensiuni mai mici.
15. Cum poate fi realizată metoda trierii cu ajutorul ciclurilor while şi repeat?
While
I:=1;
While i<> n do begin
If solutieposibila(si) then prelucraresolutie(si)
I:=i+1;
End
Repeat
I:=0;
Repeat i:=i+1;
End;
I:=i+1;
If solutieposinila(si)then prelucraresolutie(si);
Until i=n;