Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Cần giúp về môn Cấu trúc dữ liệu --Gấp lắm!!

  1. #1
    Ngày gia nhập
    10 2007
    Bài viết
    0

    Exclamation Cần giúp về môn Cấu trúc dữ liệu --Gấp lắm!!

    Cho một danh sách liên kết đơn gồm nhiều phần tử, mỗi phần tử gồm có vùng info là một ký tự ('A' -->'Z') và vùng liên kết chứa địa chỉ của phần tử kế tiếp.Viết chương trình thực hiện các công việc sau:
    1.Đếm số ký tự (không trùng nhau) có trong danh sách liên kết.
    2.Sắp xếp danh sách tăng dần theo phương pháp nổi bọt.
    3.Bổ sung vào danh sách đã sắp xếp này sao cho dnh sách sẽ chứa đầy đủ các ký tự từ 'A' đến 'Z'
    Ở trên là đề bài thực hành môn Cấu trúc dữ liệu của tui nhưng mấy tuần nay tui suy nghĩ mãi chẳng biết làm thế nào mà hạn nộp bài sắp tới rùi( cụ thể là trong tuần này).Bạn nào giỏi về danh sách liên kết thì gợi ý về thuật toán giúp tui với.please!!!

  2. #2
    Ngày gia nhập
    01 2008
    Bài viết
    240

    Trích dẫn Nguyên bản được gửi bởi 102101061124 Xem bài viết
    Cho một danh sách liên kết đơn gồm nhiều phần tử, mỗi phần tử gồm có vùng info là một ký tự ('A' -->'Z') và vùng liên kết chứa địa chỉ của phần tử kế tiếp.Viết chương trình thực hiện các công việc sau:
    1.Đếm số ký tự (không trùng nhau) có trong danh sách liên kết.
    2.Sắp xếp danh sách tăng dần theo phương pháp nổi bọt.
    3.Bổ sung vào danh sách đã sắp xếp này sao cho dnh sách sẽ chứa đầy đủ các ký tự từ 'A' đến 'Z'
    Ở trên là đề bài thực hành môn Cấu trúc dữ liệu của tui nhưng mấy tuần nay tui suy nghĩ mãi chẳng biết làm thế nào mà hạn nộp bài sắp tới rùi( cụ thể là trong tuần này).Bạn nào giỏi về danh sách liên kết thì gợi ý về thuật toán giúp tui với.please!!!
    Tớ nghĩ cái này rất nhiều trên mạng, hoặc cậu có thể đọc quyển CTDL&GT của tác giả Nguyễn Hồng Chương cực đỉnh luôn, nhưng thời gian của cậu thì hơi gấp thật
    Time

  3. #3
    Ngày gia nhập
    10 2007
    Bài viết
    0

    Mình tìm trên mạng mấy hôm nay rùi mà vẫn ko có cái mình cần.Bạn nào giúp mình với.........

  4. #4
    Ngày gia nhập
    10 2007
    Bài viết
    0

    Mình làm như vậy mà nó vẫn chạy ko đúng , bạn nào chỉ ra chỗ sai giúp mình với.Cảm ơn nhìu .
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    //#include<iostream.h>
    typedef  char info[1];
    struct element
    {
     info kitu;
     element *next;
    };
    struct man
    {
     info kitu;
    };
    typedef man DS[100];
    DS A;
    int n;
    typedef element *list;
    list f;
    //A[100]=new element;
    //Khoi tao danh sach
    void create(list &f)
    {
    	f=NULL;
    }
    
    //them mot phan tu vao danh sach
    void insert(list &f,info x)
    {
         list p;
         p=new element;
        strcpy((*p).kitu,x);
         (*p).next=f;
         f=p;
    
    }
    //nhap moi mot danh sach cac phan tu la cac ki tu tu A-Z
    void getlist(list &f)
    {f=NULL;
    int n,s=0;info x;
    //printf("\n nhap so phan tu");
    //scanf("%d",&n);
    while(strlen(x))
    {
               printf("\nnhap mot ki tu");
               fflush(stdin);gets(x);
               insert(f,x);s++;
      }
    }
    //Liet ke danh sach.
    void display(list f)
    {   list p=f; //printf("cut");
         while(p!=NULL)
         {
            puts((*p).kitu);//printf("%10c",(int)(*p).kitu);
            p=(*p).next;
            }
    }
    
    int demtatca(list f,int n)
    {
      int i=0;list p;p=f;
      while(p!=NULL)
      {p=(*p).next;
      i++;
      }//for(i=0;i<n;i++)puts(A[i].kitu);
     
           // if((strcmp((*B[l]).kitu,(*B[z]).kitu))=0)a++;
           // }
           // k=k-a;
      //for(t=f;t!=NULL;t=(*t).next)
      //{  while(q!=NULL)
        //{ q=(*q).next;
       // if((strcmp((*q).kitu,(*t).kitu))==0)i++;
        //}
      
        //}
       // j=k-i;
        return(i-1);
        }
        void duavaoman(list f,DS &A,int &n)
    {
         int k=0,m;
         list t;
         t=f;
         strcpy(A[0].kitu,(*t).kitu);
         while(t!=NULL)
         { 
           t=(*t).next;
           k++;
          strcpy(A[k].kitu,(*t).kitu);
           }n=k-1;
          for(m=0;m<=n-1;m++)
           puts(A[m].kitu);
    }
    //Hoan vi
    int demtrung(list f,DS A,int n)
    {
        int i,j,k=0;
        for(i=0;i<n;i++)
         for(j=i+1;j<n;j++)
        { if((((A[i]).kitu==(A[j]).kitu))==0)k++;}
         return(k);
    }
    void hoanvi(DS a,DS b)
    { DS tg;
        //   tg=a;
           a=b;
          b=tg;
    
    }
    void disp(DS A,int n)
    {
         int i;DS tg;
         for(i=0;i<n;i++)
         printf("%c",A[i].kitu);
         }
    //Sap xep damh sach tang dan theo phuong phap noi bot
    void bubblesort(list &f,DS A,int n)
    { 
         int i,j,k=0;
         list t ;
         t=f;
       for(i=0;i<n;i++)
         for(j=n-1;j>i;j--)
         {
            if((strcmp(A[j-1].kitu,A[j].kitu))<0)
            //{
          // tg=a;
           //a=b;
           //b=tg;}
          // hoanvi(A[j-1],A[j]);
            disp(A,n);
    }
    }
    //Them cac phan tu cho day du cac ki tu tu A=>Z
     void them(list &f)
    {
     list p;info y;int a;
    /*int ;*/p=f;
    for(a=65;a<=90;a++)
    {
     // y=(info)a;
      p=f;
       while(p!=NULL||strcmp((*p).kitu,y))
       {
          p=(*p).next;
          }if(p==NULL)insert(f,y);
    }
    } 
    
     //Ham main
    main()
    {
    	create(f);
    	
    	
      int chucnang;
    
      do{
    
        printf("\n");
        printf("\n CHUONG TRINH QUAN LI DANH SACH GOM CAC KI TU TU A=>Z:");
        printf("\n          **************************");
        printf("\n   1: Nhap moi mot danh sach gom cac ki tu.");
        printf("\n   2: Liet ke danh sach.");
        printf("\n   3: Dem so phan tu khong trung nhau trong danh sach.");
        printf("\n   4: Sap xep danh sach tang dan theo phuong phap noi bot.");
        printf("\n   5: Them cac phan tu cho day du cac ki tu tu A=>Z.");
        printf("\n   0: Ket thuc chuong trinh.");
        printf("\n          **************************");
        printf("\n\n Chuc nang ban chon la gi?");
        scanf("%d",&chucnang);
        switch(chucnang)
        {
           case 1:   getlist(f);break;//getlist(f)
           case 2:   display(f);break;
           case 3:   printf("\n So phan tu khong trung nhau co trong danh sach la: %d.",demtrung(f,A,n));//duavaoman(f,A,n);
                        break;
           case 4:   {
                        bubblesort(f,A,n);
                        printf("\nDanh sach sau khi sap xep:\n");
                       display(f);
                        break;             }
           case 5:   {
                        them(f);
                        printf("\nDanh sach sau khi them:\n");
                        display(f);
                        break;
                     }
        }
      }while(chucnang!=0);
    }

Các đề tài tương tự

  1. Trả lời: 0
    Bài viết cuối: 07-07-2013, 07:29 PM
  2. Giúp đỡ cách chọn cấu trúc dữ liệu làm từ điển bằng C#
    Gửi bởi 0nly trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 08-09-2011, 07:27 PM
  3. Bài tập C++ Bài tập xây dựng cấu trúc, giúp mình
    Gửi bởi princeleo trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 01-11-2010, 09:01 AM
  4. Giúp em sửa lỗi bài cấu trúc dữ liệu
    Gửi bởi codai trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 23-05-2010, 07:09 PM
  5. Cấu trúc file excel | Cấu trúc file xls. Giúp mình với?
    Gửi bởi knightofit trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 02-04-2009, 10:44 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn