Trang 3 trên tổng số 4 Đầu tiênĐầu tiên 1234 Cuối cùngCuối cùng
Từ 21 tới 30 trên tổng số 36 kết quả

Đề tài: Danh sách liên kết đơn - Lý thuyết cơ bản và cách triển khai

  1. #21
    Ngày gia nhập
    12 2012
    Nơi ở
    TIN5A - UNETI
    Bài viết
    167

    Mặc định Danh sách liên kết đơn - Lý thuyết cơ bản và cách triển khai

    C Code:
    1. #include<stdio.h>
    2. #include<stdlib.h>
    3. #include<malloc.h>
    4. #include<time.h>
    5.  
    6. struct Node
    7. {
    8.     long i,data;
    9.     Node * pNext;
    10. };
    11. //tao node
    12. Node *TaoNut(long x){
    13.     Node *p = (Node*)malloc(sizeof(Node));
    14.     srand(time(NULL));
    15.     p->data = rand();
    16.     return p;
    17. }
    18. int main()
    19. {
    20.    
    21.     Node *p,*pLast;
    22.     pLast = NULL;
    23.     Node *pHead = NULL;
    24.     int k = 0;
    25.     srand(time(NULL));
    26.      for((p->i)=0;(p->i)<1000000;(p->i)++)
    27.      {
    28.         p = TaoNut(rand());
    29.         if(pHead==NULL)
    30.         {
    31.             pHead = p;
    32.             p->pNext = pLast;
    33.         }
    34.         else
    35.         {
    36.             pLast = p;
    37.             pLast->pNext = NULL;
    38.         }
    39.     }
    40.    
    41.     // tim vi tri cac phan tu lon nhat
    42.     Node *pMax=pHead;
    43.     p=pMax->pNext;
    44.     while(p!=NULL)
    45.     {
    46.         if(p->data > pMax->data)
    47.         pMax=p;
    48.         p=p->pNext;
    49.     }
    50.     printf("\n Vi tri phan tu co gia tri lon nhat bang %d la: ",pMax->data);
    51.    
    52.     system("pause");
    53.     return 0;
    54. }

  2. #22
    Ngày gia nhập
    03 2013
    Nơi ở
    Hà Nội
    Bài viết
    3

    ANHMATTROI ơi bài của bạn có khác gì bài của mình không mà cũng không chạy được :(

  3. #23
    Ngày gia nhập
    12 2012
    Nơi ở
    TIN5A - UNETI
    Bài viết
    167

    chạy được mà bạn chỉ là chạy kết quả không đúng thôi
    Attached Thumbnails Attached Thumbnails Ảnh chụp màn hình_2013-03-14_233456.png  

  4. #24
    Ngày gia nhập
    03 2013
    Nơi ở
    Hà Nội
    Bài viết
    3

    Hix. Mình cop nguyên code của bạn về mà k chạy đc. thử cải Turbo C lẫn DEV C++ đều k được :( Dù sao cũng cảm ơn bạn nhé. Để mình xem lại xem

  5. #25
    Ngày gia nhập
    04 2013
    Bài viết
    3

    Mặc định hỏi về xóa 1 phần tử trong danh sách liên kết

    typedef struct phuthuocham
    {
    char left[50];
    char right[50];
    struct phuthuocham *tiep;
    }FD;
    FD *findanddel(FD *f,char *str)
    {
    FD *p,*before;
    p=f;
    while((p) &&(strcmp(str,p->left)!=0))
    {before=p;
    p=p->tiep;
    }
    if((p)&&(strcmp(str,p->left)==0))
    {
    if(p==f)
    f=p->tiep;
    else before->tiep=p->tiep;
    free(p);
    }
    return f;
    }
    hàm trên xóa 1 phụ thuộc hàm thõa đk vế trái =str.không báo lỗi nhưng không xóa đc.Mong mọi người giúp đỡ.

  6. #26
    Ngày gia nhập
    12 2012
    Nơi ở
    TIN5A - UNETI
    Bài viết
    167

    Mặc định Danh sách liên kết đơn - Lý thuyết cơ bản và cách triển khai

    chỗ if((p)&&(strcmp(str,p->left)==0))
    ban viết thêm trường hợp: danh sách rỗng, có một nút, nếu nút đó ở đầu

  7. #27
    Ngày gia nhập
    04 2013
    Bài viết
    3

    Cảm ơn bạn nhưng mình thắc mắc là nếu như mình nhập dữ liệu vào,dữ liệu thõa điều kiện ko ở vị trí đầu tiên, danh sách có nhiều hơn 1 phần tử mà nó vẫn không xóa được phần tủ đó.^_^

  8. #28
    Ngày gia nhập
    12 2012
    Nơi ở
    TIN5A - UNETI
    Bài viết
    167

    ở chỗ này nè: if((p)&&(strcmp(str,p->left)==0))

  9. #29
    Ngày gia nhập
    04 2013
    Bài viết
    3

    Hi.sao sai bạn:
    if(p &&(strcmp(str,p-> left)==0) là nếu p!=null và vt=str mà

  10. #30
    Ngày gia nhập
    12 2012
    Nơi ở
    TIN5A - UNETI
    Bài viết
    167

    PHP Code:
    typedef struct phuthuocham
    {
        
    char left[50];
        
    char right[50];
        
    struct phuthuocham *tiep;
    }
    FD;
    FD *findanddel(FD *f,char *str)
    {
        if(
    f==NULL) return NULL;
        else
        {
            
    //neu chi co mot nut
            
    if(f->tiep==NULL)
            {
                if(
    strcmp(f->left,str)==0)
                {
                    
    FD *p;
                    
    f;
                    
    NULL;
                    
    free(p);
                    return 
    f;
                }
                else return 
    f;
            }
            
    //co tu hai nut tro len
            
    else
            {
                
    //neu nut can xoa nam o dau
                
    if(strcmp(f->left,str)==0)
                {
                    
    FD *p;
                    
    f;
                    
    f->tiep;
                    
    free(p);
                    return 
    f;
                }
                
    //o vi tri con lai
                
    else
                {
                    
    FD *before,*p;
                    
    f;
                    while(
    p!=NULL&&strcmp(p->left,str)!=0)
                    {
                        
    before p;
                        
    p->tiep;
                    }
                    if(
    p==NULL)    
                    {
                        
    //neu o nut cuoi
                        
    if(strcmp(before->left,str)==0)
                        {
                            
    f;
                            while(
    p->tiep!=beforep->next;
                            
    free(before);
                            
    p->tiep NULL;
                            return 
    f;
                        }
                        else return 
    f;
                    }
                    else
                    {
                        
    FD *m;//nut m nam sau nut p
                        
    p->tiep;
                        
    free(p);
                        
    before->tiep m;
                        return 
    f;
                    }
                }
            }
        }


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

  1. cách sử dụng danh sách liên kết khai báo cây nhị phân trong C++
    Gửi bởi huunhan577 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 21-03-2013, 09:43 AM
  2. Con trỏ trên C Các cách khai báo con trỏ trong danh sách liên kết đơn?
    Gửi bởi vandt trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 11-09-2012, 09:39 AM
  3. Định nghĩa kiểu dữ liệu khi khai báo cấu trúc danh sách liên kết đơn
    Gửi bởi nguyenquanghung trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 13-05-2011, 12:39 AM
  4. Nhập và xuất danh sách liên kết lồng danh sách liên kết?
    Gửi bởi nvluong_it trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 22-04-2011, 11:30 AM
  5. khai báo danh sách liên kết đơn
    Gửi bởi HaNguyen trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 19-10-2010, 05:14 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