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

Xem chủ đề cũ hơn Xem chủ đề mới hơn 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

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


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