BÀI TẬP CTDL VỀ IN XUẤT DS

Go down

default BÀI TẬP CTDL VỀ IN XUẤT DS

Bài gửi by itsnotoverlbh on Mon Mar 07, 2011 9:12 pm

Code:
 #include<stdio.h>
#include<conio.h>
#define MaxLength 100
 typedef int ElementType;
 /*********** dung danh sach********/
 typedef int Position;
 typedef struct{
        ElementType Elements[MaxLength];
        Position Last;} List;
 // tao danh sach rong
 void MakeNull_List(List *L){
      L->Last=0;}
 //kiem tra ds rong
 int Empty_List(List L){
    return L.Last==0; }
 // chen vao ds
void Insert_List(ElementType X, Position P,List *L){
      if(L->Last==MaxLength)
      printf("DS day");
      else if((P<1) || (P>L->Last+1))
      printf("vi tri k hop le");
      else{
          Position Q;
          for(Q=(L->Last-1)+1;Q>P-1;Q--)
          L->Elements[Q]=L->Elements[Q-1];
          L->Elements[P-1]=X;
          L->Last++;}}
// mot so ham co ban
 Position First(List L){
        return 1;}
 Position EndList(List L){
        return L.Last+1;}
 int  Retrieve(Position P,List L){
 return L.Elements[P-1];}
 Position Next(Position P,List L)
{ return P+1;}
// dinh vi phan tu
Position Locate(ElementType X,List L){
        Position P=First(L);
        int found =0;
        while((P!=EndList(L))&&(found==0))
        if(Retrieve(P,L)==X) found =1;
        else P=Next(P,L);
        return P;}
       
 // Nhap chuoi
 void NhapList(List *L){
      ElementType X;
      Position P=1;
      printf(" nhap so bat ki, nhap 0 ket thuc\n");
      do{
              printf("cac gia tri ds:"); scanf("%d",&X);
              Insert_List(X,P,L);
              P++;}
              while(X!=0);}
     
                      // in dan sach
 void printf_List(List L){
      Position P;
      for(P=1;P!=EndList(L);P++){
      printf("%2d",Retrieve(P,L));} printf("\n");}
 int main(){ List L;
        ElementType X;
        Position P;
        MakeNull_List(&L);
        NhapList(&L); 
        printf("danh sach vua nhap");
        printf_List(L);
        getch();
        }
     
             




Được sửa bởi itsnotoverlbh ngày Tue Mar 08, 2011 10:25 pm; sửa lần 1.
avatar
itsnotoverlbh

Posts : 367
Thanked : 21
Gia Nhập 18/02/2011

Tài Sản
Thú nuôi:

http://www.ittd.freevnn.com

Về Đầu Trang Go down

default Re: BÀI TẬP CTDL VỀ IN XUẤT DS

Bài gửi by Admin on Mon Mar 07, 2011 9:29 pm

Sai là ở chỗ cái hàm "Insert_List", hàm "Insert_List" là hàm cơ bản đơn giản đánh đúng y chan trong sách, còn cái hàm "Insert_List" của mến là chèn 1 phần từ kiểu "ElementType" vào 1 vị trí nào đó mình đã biết.
Cái sai tiếp theo nằm ở hàm "Read_List", Cái "Insert_List(X,EndList(L),&L)" nó không như thế này. Nếu Mến muốn nhập vào danh sách theo thứ tự thì nó như thế này "Insert_List(X,First_List(L),&L)" còn không theo thứ tự thì nó như thế này " Insert_List(X,Last_List(L),&L)".
Hàm xuất lại sai nữa nè "P=Next(P,L)"; phải sửa lại như thế này "P=P->Next(P,L);"
Cần chú ý lại phần cài đặt danh sách chỗ kiểu "ElementType"
avatar
Admin

Posts : 1013
Thanked : 47
Gia Nhập 25/08/2010

Tài Sản
Thú nuôi:

http://k4info.forumr.net

Về Đầu Trang Go down

default Re: BÀI TẬP CTDL VỀ IN XUẤT DS

Bài gửi by itsnotoverlbh on Mon Mar 07, 2011 9:33 pm

nó chỉ sai ở chỗ vòng lặp thôi mà, nhưng tôi k biết sửa sao cho đúng nữa
avatar
itsnotoverlbh

Posts : 367
Thanked : 21
Gia Nhập 18/02/2011

Tài Sản
Thú nuôi:

http://www.ittd.freevnn.com

Về Đầu Trang Go down

default Re: BÀI TẬP CTDL VỀ IN XUẤT DS

Bài gửi by Admin on Mon Mar 07, 2011 9:40 pm

trong 1 mảng thì phần tử đầu tiên bắt đầu tử 0 VD a[0]; còn trong cài đặt danh sách thì phần tử đầu tiên nó tính là 1, xem lại chỗ này mấy cái vòng lặp lệnh Insert_List.
avatar
Admin

Posts : 1013
Thanked : 47
Gia Nhập 25/08/2010

Tài Sản
Thú nuôi:

http://k4info.forumr.net

Về Đầu Trang Go down

default Re: BÀI TẬP CTDL VỀ IN XUẤT DS

Bài gửi by Sponsored content


Sponsored content


Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết