// Msv:581597
//Lớp:K58QLTT
A.   Giải thuật chương trình chính
Program ChuyenDoiNhiPhan;
1, read(n);
2, while n <> 0 do
    Begin
              Tg:=n
mod 2;
              Call
Push(Tg);
              n:=
n /2;
    end
3, while Empty(T) <>TRUE do
write(Pop());
End.
B.   Thủ tục bổ sung vào ngăn xếp cài đặt bằng
danh sách liên kết kép
Vào : Ngăn xếp (T,X);
Ra:  Không
có;
{Thủ tục này bổ sung phân tử dữ liệu X vào
ngăn xếp (T) có T là nút đỉnh ngăn xếp cài đặt bằng danh sách liên kết kép ;}
Procedure 
     Push(var:T,x)
1,{Tao nút mới }
    new<=AVAIL;
    infor(new):=x;
    left(new):= Ø;
    right(new):=
Ø;
2,{ Bổ dung vào ngăn xếp}
If T =Ø then     { trường hợp danh sách rỗng}
    T:=
new;
Else
    Begin
              right(new):=T;
              left(T):=new;
              T:=new;
    End
Return
C.   Hàm loại bỏ một phần tử ở đỉnh ngăn xếp
Vào :Ngăn xếp (T);
Ra: Trả phần tử dữ liệu của nút bị loại bỏ.
{Hàm này loại bỏ phần tử của đỉnh ngăn
xêp(T) có T là đỉnh ngăn xếp và trả về phần tử loại bỏ;}
Function Pop(var: T)
1,{Kiem tra danh sach rong};
    If
T=Ø then begin
                                          Write(‘Danh
sach rong.!’);
                                          Return
;
                                 End;
2,{Loại bỏ phần tử đỉnh ngăn xếp}
    Tg:=INFOR(T);
    P:=T;
    If
right(T)= Ø  then
{Trường hợp danh sách chỉ còn 1 node }
T:= Ø
    Else
              Begin
                       T:=right(T);
                       left(T):=
Ø;
              End;
              P=>AVAIL;
3, Pop:=Tg;
Return;
D.   Hàm kiểm tra ngăn xếp rỗng
Vào: ngăn xếp (T);
Ra :TRUE nếu ngăn xếp rỗng , FALSE nếu ngăn xếp chưa rỗng.
{hàm này kiểm tra ngăn xếp rỗng, ngăn xếp được cài đặt bằng danh sách
liên kép}
Function  Empty(T)
If T= Ø  then  
Empty:=TRUE;
else
         Empty:=FALSE;  
Return;
https://linhtranitvnua.blogspot.com/2016/05/chuong-trinh-chuyen-oi-1-so-nguyen.html






0 comments:
Post a Comment