Information Technology VietNam

Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

5 posters

    Cấu trúc danh sách liên kết

    Vy Thanh Định
    Vy Thanh Định
    Web Master
    Web Master


    Giới tính : Nam Bài gửi : 228
    Tổng Điểm : 544
    Điểm Thưởng : 16
    Sinh Nhật : 19/05/1990 Bị Dụ Dỗ : 11/09/2009
    Tuổi : 34

    Cấu trúc danh sách liên kết Empty Cấu trúc danh sách liên kết

    Bài gửi by Vy Thanh Định 29/10/2009, 16:07

    Cho một danh sách liên kết đơn l, mỗi nút là một số nguyên dương.
    a.Tìm phần tử lớn nhất danh sách l.
    bTính tổng các phần tử của danh sách l.
    c.Đếm xem trong danh sách l có bao nhiêu số nguyên tố ?
    d.Đếm xem trong danh sách có bao nhiêu số âm ? bao nhiêu số bằng 0 ? bao
    nhiêu số dương ?
    e.Đếm xem trong danh sách có bao nhiêu số bằng x ?
    f.Tìm phần tử dương nhỏ nhất trong danh sách.


    Code:
    #include "iostream.h"

    typedef struct Nut
    {
       int a;
       Nut *tiep;
    };
    typedef struct DanhSach
    {
       Nut *dau;
       Nut *cuoi;
       int n;
    };
    Nut *LayNut(int x)
    {
       Nut *p = new Nut;
       if(p == NULL)
       {
          cout<<"Khong du bo nho";
       }
       p->a = x;
       p->tiep = NULL;
       return p;
    }

    void TaoDanhSach(DanhSach &DS)
    {
       DS.dau = DS.cuoi = NULL;
    }

    void ThemDau(DanhSach &DS,Nut *x)
    {
       Nut *p;
       if(DS.dau == NULL)
       {
          DS.dau = DS.cuoi = x;
       }
       else
       {
          x->tiep = DS.dau;
          DS.dau = x;
       }
    }

    Nut *ChenDau(DanhSach &DS,int x)
    {
       Nut *p = LayNut(x);
       if(p == NULL)
          return NULL;
       ThemDau(DS,p);
          return p;
    }

    void ThemCuoi(DanhSach &DS,Nut *x)
    {
       if(DS.dau == NULL)
       {
          DS.dau = DS.cuoi = x;
       }
       DS.cuoi = DS.cuoi->tiep = x;   
    }

    void XuatDuLieu(DanhSach DS)
    {
       Nut *p;
       for(p = DS.dau;p != NULL;p = p->tiep)
       {
          cout<<p->a<<"  ";
       }
    }

    int PtuLonNhat(DanhSach &DS)
    {
       Nut *p;
       int max = DS.dau->a;
       for(p = DS.dau;p != NULL;p = p->tiep)
       {
          if(max < p->a)
             max = p->a;
       }
       return max;
    }
    int TongPtu(DanhSach &DS)
    {
       Nut *p;
       int tong=0;
       for(p = DS.dau;p != NULL;p = p->tiep)
       {
          tong = tong + p->a;
       }
       return tong;
    }

    int SoNT(int x)
    {
       for(int i = 2;i <= x/2;i++)
       {
          if(x%i == 0) return 0;
       }
       return 1;
    }

    int DemSoNT(DanhSach DS)
    {
       Nut *p;
       int d = 0;
       for(p = DS.dau;p != NULL;p = p->tiep)
       {
          if(SoNT(p->a) == 1) d++;
       }
       return d;
    }

    int DemSoAm(DanhSach &DS)
    {
       Nut *p;
       int d = 0;
       for(p = DS.dau;p != NULL;p = p->tiep)
       {
          if(p->a < 0) d++;
       }
       return d;
    }

    int DemSoBang0(DanhSach DS)
    {
       Nut *p;
       int d = 0;
       for(p = DS.dau;p != NULL;p = p->tiep)
       {
          if(!(p->a)) d++;
       }
       return d;
    }

    int DemSoDuong(DanhSach DS)
    {
       Nut *p;
       int d = 0;
       for(p = DS.dau;p != NULL;p = p->tiep)
       {
          if(p->a > 0) d++;
       }
       return d;
    }

    int DemSoBangX(DanhSach DS,int x)
    {
       Nut *p;
       int d = 0;
       for(p = DS.dau;p != NULL;p = p->tiep)
       {
          if(p->a == x) d++;
       }
       return d;
    }

    int PhanTuDuongNhoNhat(DanhSach DS)
    {
       Nut *p;
       DanhSach A;
       TaoDanhSach(A);
       int min;
       for(p = DS.dau;p != NULL;p = p->tiep)
       {
          if(p->a > 0)
             ChenDau(A,p->a);
       }
       if(A.dau == NULL) min = -1;
       else
       {
          min = A.dau->a;
          for(p = A.dau;p != NULL;p = p->tiep)
          {
             if(min > p->a)
                min = p->a;
          }
       }
       return min;
    }

    main()
    {
       DanhSach DS;
       int i,n,x,y;
       TaoDanhSach(DS);
       cout<<"Nhap so phan tu: ";
       cin>>n;
       for(i=0;i<n;i++)
       {
          cout<<"x"<<i<<" = ";
          cin>>x;
          ChenDau(DS,x);
       }
       XuatDuLieu(DS);
       cout<<"\nPhan tu lon nhat: "<<PtuLonNhat(DS)<<endl;
       cout<<"Tong cac phan tu: "<<TongPtu(DS)<<endl;
       cout<<"Danh Sach co :\n";
       cout<<DemSoNT(DS)<<" so nguyen to\n";
       cout<<DemSoAm(DS)<<" so am\n"<<DemSoBang0(DS)<<" so 0\n"<<DemSoDuong(DS)<<" so duong\n";
       cout<<"Nhap vao x can kiem tra: ";
       cin>>y;
       cout<<"Danh Sach co "<<DemSoBangX(DS,y)<<" so bang "<<y<<endl;
       if(PhanTuDuongNhoNhat(DS) == -1)
          cout<<"Khong co phan tu duong nen khong the co min duong!\n";
       else
          cout<<"Phan tu duong nho nhat "<<PhanTuDuongNhoNhat(DS)<<endl;
    }
    conheoluoc
    conheoluoc
    Newbie
    Newbie


    Giới tính : Nữ Bài gửi : 1
    Tổng Điểm : 1
    Điểm Thưởng : 0
    Sinh Nhật : 13/08/1990 Bị Dụ Dỗ : 29/10/2009
    Tuổi : 34

    Cấu trúc danh sách liên kết Empty Re: Cấu trúc danh sách liên kết

    Bài gửi by conheoluoc 31/10/2009, 00:11

    thanks cùi nhé
    taenycp_8990
    taenycp_8990
    Senior Member
    Senior Member


    Giới tính : Nữ Bài gửi : 37
    Tổng Điểm : 87
    Điểm Thưởng : 4
    Sinh Nhật : 05/06/1990 Bị Dụ Dỗ : 11/09/2009
    Tuổi : 34
    Nơi Xuất Phát : Củ Chuối

    Cấu trúc danh sách liên kết Empty Re: Cấu trúc danh sách liên kết

    Bài gửi by taenycp_8990 31/10/2009, 13:34

    Ôi trời "DANH SÁCH LIÊN KẾT"!!!!! Cấu trúc danh sách liên kết 920544

    Xem bài của anh Cùi mà e còn chưa hiểu nữa!! Khổ thân


    Thanks anh Cùi nha
    **~~((','))~~**
    **~~((','))~~**
    Newbie
    Newbie


    Giới tính : Nam Bài gửi : 1
    Tổng Điểm : 1
    Điểm Thưởng : 0
    Sinh Nhật : 11/04/1990 Bị Dụ Dỗ : 30/10/2009
    Tuổi : 34

    Cấu trúc danh sách liên kết Empty Re: Cấu trúc danh sách liên kết

    Bài gửi by **~~((','))~~** 31/10/2009, 20:52

    kho wa hà
    huhuh
    Cấu trúc danh sách liên kết 920544
    ban_tuongky
    ban_tuongky
    Moderator
    Moderator


    Giới tính : Nam Bài gửi : 91
    Tổng Điểm : 198
    Điểm Thưởng : 0
    Bị Dụ Dỗ : 11/09/2009

    Cấu trúc danh sách liên kết Empty Re: Cấu trúc danh sách liên kết

    Bài gửi by ban_tuongky 4/11/2009, 13:55

    hiiiihi thanks you

    Sponsored content


    Cấu trúc danh sách liên kết Empty Re: Cấu trúc danh sách liên kết

    Bài gửi by Sponsored content


      Hôm nay: 25/11/2024, 15:46