//Họ và tên:Trần văn Linh
//Msv:581597
//Lớp:K58QLTT
//Msv:581597
//Lớp:K58QLTT
------------------------------------------------------------------------------------------------------------
#include<stdio.h>
enum {size=100};//Kích thước mảng
//Khai bao cau truc
typedef struct ds
{
      int a[size];
      int R;
      int F;
}ds;
//Khai bao ham
void Create(ds *ds);//Hàm khỏi tạo
void CQInsert(ds *ds,int x);//Hàm chèn một phần tử x vào ds
int CQDelete(ds *ds);//Ham xóa bỏ 1 phần tử và trả về phần tử đó
int empty(ds *ds);//Hàm kiểm tra ds rỗng.
//====Chương trình chính====
void main()
{
     ds ds;
     Create(&ds);//Khởi tạo ds
     CQInsert(&ds,1);//Chèn 1 vào ds
     CQInsert(&ds,2);//Chèn 2 vào ds
     CQInsert(&ds,3);//Chèn 3 vào ds
     CQInsert(&ds,4);//Chèn 4 vào ds
       //xóa bỏ từng phần tử trong danh sách và in phần tử đó ra
     while(!empty(&ds))
            printf("%d\t\t",CQDelete(&ds));
}
//Dinh nghia ham
void Create(ds *ds)
{
     ds->F=-1;
     ds->R=-1;
}
//-----------------------------------------------------
void CQInsert(ds *ds,int x)
{
        //Kiểm tra ds đầy
      if((ds->F==0)&&(ds->R==size-1)||(ds->R+1==ds->F))
     {
           printf("Danh sach da day.!");
           return;
     }
        //Thay đổi chỉ số
      if(ds->F==-1)
     {
         ds->F=0;
         ds->R=0;
      }else if(ds->R==size-1)
                    ds->R=0;
             else
                 ds->R++;
        //Bổ sung
       ds->a[ds->R]=x;
}
int CQDelete(ds *ds)
{
      int tg;
        //Kiểm tra ds rỗng
      if(ds->F<0)
     {
         printf("Ds rong.!");
         return 0;
     }
      tg=ds->a[ds->F];//Phần tử xóa bỏ trả về
       //Thay đổi chỉ số
     if(ds->F==ds->R)
     {
           ds->F=-1;
           ds->R=-1;
     }
    else if(ds->F==size-1)
                ds->F=0;
           else
                 ds->F++;
     return tg;
}
//---------------------------
int empty(ds *ds)
{
     if(ds->F<0)
        return 1;//Rỗng trả về 1
     return 0;
}
Kết quả khi chạy chương trình :






0 comments:
Post a Comment