Wednesday, May 11, 2016

Chương trình hằng đợi với danh sách liên kết đơn bằng C

#include<stdio.h>

#include<stdlib.h>

//Khai báo cấu trúc 1 nút
struct node
{
int infor;
struct node *link;
}*F=NULL,*R=NULL; //Khởi tạo

// Khai báo hàm
void QInsert(int X);
int QDelete();
int Empty();

// ===Chuong Trinh Chinh===
int main()
{
     // Bổ sung vào hàng đợi
        QInsert(1);
        QInsert(2);
        QInsert(3);
        QInsert(5);

//Hiện thị thông tin của hàng đợi
     printf("Cac so trong danh sach la: \n");
      while(!Empty())
            printf("%d\t\t",QDelete());
return 0;
}
// ==Định nghĩa hàm
// Hàm bổ sung một phần tử vào hằng đợi
void QInsert(int X)
{
    struct node *N;
     // Cấp phát bộ nhớ
     N=(struct node*)malloc(sizeof(struct node));
    N->infor=X;
    N->link=NULL;

      // Bổ sung
     if (F==NULL)
     {
         F=N;
         R=N;
     }
 else
    {
         R->link=N;
         R=N;
    }
}
//Hàm loại bỏ một 1 nút khỏi hàng đợi và trả về thông tin ở nút đó
int QDelete()
{
    int tg;
    struct node *P;

  if(F==NULL)
   {
       printf("Hang doi rong! ");
     return 0;
   }
    tg=F->infor;
     P=F;
     F=F->link;
  free(P); //Thu hồi bộ nhớ ,hủy nút

return tg;
}
//Hàm kiểm tra danh sách rỗng
int Empty()
{
    if(F==NULL)
         return 1;
     return 0;

}

0 comments:

Post a Comment