Professional Documents
Culture Documents
Con Tro
Con Tro
A
9
nil
Hm tm kim:
Function tim(A:list;k:longint):list;
VAR p:list;
BEGIN
WHILE (a<>nil)and(a^.info<>k) DO a:=a^.link;
exit(a);
END;
2. Chn nt c gi tr x_chen
Yu cu: Chn 1 nt c gi tr x_chen vo sau nt c gi tr x, nu trong DSLK khng c nt c gi
tr x th chn vo cui danh sch.
Gi s nt cha gi tr x_chen cn c chn vo DSLK A. To con tr T mang gi tr
T^.info=x_chen, T^.link=nil. Xt 3 trng hp:
+ TH1: Nu DSLK A rng th A tr vo T.
+ TH2: Nu DSLK A c t nht 1 nt v trong A c 1 nt c gi tr x th tm P l con tr tr vo nt
c gi tr x trong A. V d: x=2; x_chen=8 th ta thc hin nh sau:
B1: Cho P tr v nt c gi tr x ng thi to 1 con tr T cha x_chen=8:
T
8
A
9
nil
nil
T
8
9 kt ca
1 P tr vo
6 T: P^.link:=T;
2
B3: Cho lin
nil
T
8
2
A
9
nil
p:=tim(a,x);
IF p=nil THEN//TH3: ko tim thay x
BEGIN
p:=a;
WHILE p^.link<>nil DO p:=p^.link;
p^.link:=t;
END
ELSE
//TH2: tim thay x
BEGIN
t^.link:=p^.link;
p^.link:=t;
END;
END;
END;
Ch : Hm Tim(a,x) c trnh by mc 1 ca bi ny
3. Xa mt nt cha gi tr x trong DSLK n
Tt nhin trong A phi c 1 nt cha gi tr x th ta mi thc hin c thao tc xa ny. Chia thnh
2 trng hp:
+ TH1: nt cha gi tr x nm u DSLK.
Lc ny ch cn A tr vo nt tip theo ri thu hi vng nh ca nt u tin:
B1: Cho con tr T tr vo nt u tin: T:=A;
A
T
nil
A
T
9
1
6
2
3
7
B3: thu hi vng nh ca T: Dispose(T). Kt qu t c:
nil
A
1
nil
P1
A
P2
2
nil
nil
P1
A
P2
2
P1
A
nil
Th tc xa nt x nh sau:
PROCEDURE xoa(VAR A:list;x:longint);
VAR p1,p2:list;
BEGIN
IF a^.info=x THEN a:=a^.link
ELSE
BEGIN
p1:=a;
p2:=a^.link;
WHILE(p2<>nil)and(p2^.info<>x) DO
BEGIN
p1:=p1^.link;
p2:=p2^.link;
END;
IF p2<>nil THEN
BEGIN
p1^.link:= p2^.link;
p2^.link:=nil;
dispose(p2);
END;
END;
END;
Bi tp: