BÀI TẬP CẤU TRÚC DỮ LIỆU - Pdf 32

BÀI TẬP CẤU TRÚC DỮ LIỆU
BÀI 1_3.
{---------------TRON 2 DANH SACH ----------}
Procedure MergerList(L1,L2:List;Var L:List);
Var Q,P,T: List;
Begin
sapxep(L1);
sapxep(L2);
P:=first(L1);
{ CACH 1: while P<>end_L(L1) do
begin
insert_L(retrieve(P,L1),End_L(L),L);
P:=P^.next;
end;
Q:=L2;
while Q<>end_L(L2) do
begin
T:=first(L);
while (T<>nil) and (retrieve(T,L)<retrieve(Q,L2)) do
T:=T^.next;
insert_L(retrieve(Q,L2),T,L);
Q:=Q^.next;
end; }
P:=First(L1);q:=FIRST(L2);
while (P<>End_L(L1)) and (Q<>End_L(L2)) do
if retrieve(P,L1)<Retrieve(Q,L2) then
begin
insert_L(retrieve(P,L1),End_L(L),L);
P:=P^.next;
end
else

Procedure Merger_nl(N_List:mang; m: integer; Var L:List);
Var i:integer;
Begin
L:=N_List[1];
for i:=2 to m do
mergerlist(N_List[i],L);
End;
{-------- NHAP N DANH SACH -------}
Procedure READ_NL(Var N_List:mang);
Var j:integer;
Begin
write('Co bao nhieu danh sach can tron: ');readln(m);
for j:=1 to m do
begin
makenull(N_List[j]);
writeln('------- DANH SACH THU ',j,' ------');
readlist(N_List[j]);
sapxep(N_List[j]);
WRITELN;
end;
End;
BÀI 1_5:
uses crt;
Type Elementype=integer;
Position=^List;
List=record
heso,somu:elementype;
next:Position;
end;
Var A, B, C: position;

else
if p1^.next^.somu<P2^.next^.somu then
begin
insert(P2^.next^.heso,P2^.next^.somu,P);
P2:=P2^.next;
end
else
begin
x:=P1^.next^.heso+P2^.next^.heso;
y:=P1^.next^.somu;
insert(x,y,P);
P1:=P1^.next;P2:=P2^.next;
end;
while P1<>end_L(D1) do
begin
insert(P1^.next^.heso,P1^.next^.somu,P);
P1:=P1^.next;
end;
while P2<>end_L(D2) do
begin
insert(P2^.next^.heso,P2^.next^.somu,P);
P2:=P2^.next;
end;
End ;
{--------- TINH TONG HAI DA THUC ----------}
Procedure SUM_DT(A, B: Position; Var C: Position);
Var T, K : Position;
Begin
makenull(C);
T:=A;

end;
End;
{----------DAO HAM CUA DA THUC ----------}
Function DaoHam(A: Position):Position;
Var K, P, Q: Position;
Begin
makenull(K);
P:=K;
Q:=A;
while Q^.next<>nil do
begin
new(P^.next);
P^.next^.heso:=Q^.next^.heso*Q^.next^.heso;
P^.next^.somu:=Q^.next^.somu-1;
Q:=Q^.next;
P:=P^.next;
end;
daoham:=k;
End;
BÀI 1_6: THỰC HIỆN CỘNG 1 VÀO DÃY SỐ NHỊ PHÂN
Type
b=0..1;
Position=^Cell;
Cell=Record
bit:0..1;
next:Position;
end;
Procedure INCREMENT(Var Bnumber: Position; Q: Position);
Var K,P: position;
Begin

end;
Function Height(n:node;T: Tree): integer;
Var h:integer;m:node;
Begin
if empty(T) then writeln('Cay rong!')
else
begin
h:=0;
m:=LEFTMOST_CHILD(n,T);
while m<>0 do
begin
h:=max(h,height(m,T));
m:=RIGHT_SIBLING(m,T);
end;
height:=h+1;
end;
end;
BÀI 2_2
{----- DUYET DUONG DI CUA 1 NUT VE GOC ------}
Procedure DD(m:node;VAR q: integer; Var A: mang;T:Tree);
Var k: node;j:integer;
Begin
k:=T.parent[m];
j:=0;
while k<>parent_T(Root(T),T) do
begin
a[j]:=k;
k:=T.parent[k];
j:=j+1;


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status