Tuesday, May 10, 2016

Cài đặt hàng đợi sử dụng danh sách liên kết đơn .

Khi cài đặt hàng đợi bằng danh sách liên kết đơn mỗi một phần tử của hằng đợi sẽ được lưu trữ trong một nút có cấu trúc như trong danh sách liên kết đơn. Khi bổ sung vào hàng đợi ta bổ sung vào cuối danh sách, khi loại bỏ ta loại bỏ ở đầu danh sách.!


A. Thủ tục bổ sung một phần tử dữ liệu vào hàng đợi.

Procedure  QINSERT(F,R,x)
1,{tạo nút mới}
      new <= AVAIL;
     infor(new):=x;
     link(new):=null;
2.{Bổ sung}
if F=null then
       begin
             F:=new;
             R:=new;
       end;
else
begin
    link(R):=new;
    R:=new;
end
3.Return

Cài đặt hàm trong ngôn ngữ lập trình C
//--------------------------------------
Đầu tiên ta có cấu trúc nút
typedef struct node NODE;
struct node
{
     typeDaTa infor;
     NODE *link;
}
//--------------------------------------------------
void  QINSERT(NODE *F,NODE *R,typeDaTa X)
{
      // tạo nút mới
      NODE *N;
      N=(NODE*)malloc(sizeof(NODE);
      N->infor=X;
      N->link=NULL;
   
      //Bổ sung
      if (F==NULL)
      {
           F=N;
           R=N;
      }
      else
       {
             R->link=N;
             R=N;
        }
}
B.Thủ tục loại bỏ một nút khỏi hàng đợi và trả về thông tin của nút đó.

Procedure   QDELETE(F,R)
1,{kiểm tra hàng đợi rỗng}
    if F=null    then
        begin
              write('Hàng đợi rỗng');
               return ;
         end
2.{Loại bỏ}
    tg=infor(F);
    P:=F;
 
     if F=R then
                F:=R:=null;
     else
           F:=link(F);
3,{Thu hoi bo nho}
     P=>AVAIL;
4.QDELETE:=tg;
5.Return

Cài đặt hàm trong ngôn ngữ lập trình C

typeDaTa  QDELETE(NODE *F,NODE *R)
{
      NODE *P;
      typeDaTa  tg;
     //kiểm tra danh sách rỗng.
      if(F==NULL)
      {
             printf("Danh sách rỗng .!");
             return NULL;
      }
     P=F;
     tg=F->infor;
     F=F->link;
    free(P);//hủy nút
    return tg;//trả về giá trị thông tin của nút bị xóa
}





0 comments:

Post a Comment