Documente Academic
Documente Profesional
Documente Cultură
dn d n-1 … d2 d1
C
B
dn d n-1 … d2 d1
LISTE PARTICULARE
Stiva (lista LIFO)
inserare
citire dn dn-1 … d2 d1
ştergere
ŢĂ
FA SPATE
citire dn d n-1 … d2 d1 inserare
ştergere
S
F
PRIM ULT
temp
Inf.utilă urm
Pascal C++
New(temp); temp=new(nod);
read(x); cin>> x
temp^.inf:=x; temp->info=x;
temp^.urm:=prim; temp->urm:=prim;
prim:=temp; prim:=temp;
INSERARE IN SPATELE LISTEI
Prim Ultim
5 7 10 NIL NIL
Q
Pascal
New(Q); C++ 9
x:=9; q=new(nod);
q^.inf:=x; x=9;
q^.urm:=NIL; q->info=x;
ultim^.urm:=q; q->urm:=NULL;
ultim:=q ultim->urm=q
ultim:=q;
INSERARE DUPA UN NOD (M)
Prim m Ultim
5 7 10 NIL
9
Pascal 9
C++
New(p); p=new(nod);
x:=9; x=9;
p^.inf:=x; p->info=x;
p^.urm:=m^.urm; p->urm:=m->urm;
m^.urm:=p m->=urm=p;
STERGEREA PRIMULUI NOD
5 9 7 10 NIL
Pascal
C++
temp:=prim temp=prim
prim:=prim^.urm prim:=prim->urm
dispose(temp) delete (temp)
STERGEREA ultimului NOD al listei
P ultim
Prim ultim
5 9 7 NIL 10 NIL
Pascal
C++
temp:=ultim temp=ultim
p^.urm:=nil; p->urm=NULL;
dispose(temp) delete(temp)
ultim:=p ultim:=p
ant info urm
INSERARE IN FATA LISTEI
DUBLU INLANTUITE
Prim Ultim
NIL 2 8 7 NIL
Pascal
New(P); C++
P p=new(nod);
x:=6;
p^.inf:=x; x=6;
NIL 6 p^.urm:=prim; p->inf=x;
p^.ant:=nil; p->urm=prim;
prim^.ant:=p; p->ant=NULL;
prim:=p prim->ant=p;
prim=p
ant info urm
INSERARE IN SPATELE LISTEI
DUBLU INLANTUITE
Prim Ultim
Pascal
New(P); C++
p=new(nod); P
x:=6;
p^.inf:=x; x=6;
p^.urm:=NIL; p->inf=x; 6
p^.ant:=ULTIM; p->urm=NULL;
ultim^.urm:=p p->ant=ultim;
ultim:=p ultim->urm=p
ultim=p
ant info urm
INSERARE DUPA UN NOD
OARECARE (dupa primul nod)/
LISTA DUBLU INLANTUITA
Prim P Ultim
NIL 2 8 7 NIL
Q
C++
Pascal p=new(nod);
6 x:=6;
New(q);
x:=6; q->inf=x;
q^.inf:=x; q->urm=prim->urm;
q^.urm:=prim^.urm; q->ant=prim->urm;
q^.ant:=prim^.urm; prim->urm->ant=q
prim^.urm^.ant:=q prim->urm=q
prim^.urm:=q
ant info urm STERGEREA UNUI NOD DIN INTERIORUL
LISTEI DUBLU INLANTUITE
(stergerea nodului P)
Prim P Ultim
NIL 2 8 6 7 NIL
Pascal
C++
temp=p
temp:=p
prim->urm=p->urm;
prim^.urm:=p^.urm;
p->urm->ant=p->ant;
p^.urm.^ant:=p^.ant;
dispose(temp) delete(temp)
APLICAŢII ALOCARE DINAM
ICĂ
Cuvinte ordonate
Inmultirea a 2 numere mari
suma a 2 polinoame
Inmultirea a 2 polinoame
Schimbarea sensului sagetilor într-o listă
stergerea elementelor nule