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

Đề tài: giải thuật quick sort trong DSLKD

  1. #1
    Ngày gia nhập
    03 2009
    Nơi ở
    C:\Windows\system32
    Bài viết
    18

    Mặc định giải thuật quick sort trong DSLKD

    Mình gặp rắc rối với cái quick sort này. Đang đau đầu vì nó, tìm mãi mà vẫn không ra lỗi. Pro nào giúp em với.
    PHP Code:
    void DSLKD::sxPH()
    {
        
    DSLKD *ds1, *ds2;
        
    ds1 = new DSLKD;
        
    ds2 = new DSLKD;
        
    NUT *x, *p;
        if(
    this->dau==this->cuoi)
            return;
        
    this->dau;
        
    this->dau=this->dau->tiep;
        
    x->tiep=NULL;
        while(
    this->dau!=NULL)
        {
            
    p=this->dau;
            
    this->dau=this->dau->tiep;
            
    this->tachNut(p);
            if(
    p->duLieu <= x->duLieu)
                
    ds1->themCuoi(p);
            else
                
    ds2->themCuoi(p);
        }
        
    //goi de quy
        
    ds1->sxPH();
        
    ds2->sxPH();
        
    //noi hai danh sach lai
        
    if(ds1->dau!=NULL)
        {
            
    this->dau=ds1->dau;
            
    ds1->cuoi->tiep=x;
        }
        else
            
    this->dau=x;
        
    x->tiep=ds2->dau;
        if(
    ds2->dau!=NULL)
            
    this->cuoi=ds2->cuoi;
        else
            
    this->cuoi=x;


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

    code này gây leak memory
    đoạn này cậu thử đổi lại
    C++ Code:
    1. while(this->dau!=NULL)
    2.     {
    3.         p=this->dau;  
    4.         if(p->duLieu <= x->duLieu)
    5.             ds1->themCuoi(p);
    6.         else
    7.             ds2->themCuoi(p);
    8.         this->tachNut(p);
    9.         this->dau=this->dau->tiep;
    10.     }
    code ra gió bão

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    C:\Windows\system32
    Bài viết
    18

    thanks! Nhưng mình thấy chưa ổn. quả thật như vậy, khi chạy có lỗi.
    Ngay tại ds1->themcuoi(p);
    hoặc tại ds2->themcuoi(p); thì buộc p->tiep=NULL;
    để đoạn này sau thì không ổn rồi:
    Code:
    this->tachNut(p);
    this->dau=this->dau->tiep;

  4. #4
    Ngày gia nhập
    04 2008
    Bài viết
    336

    cậu post cái hàm tachNut lên mình xem ?
    nếu trong tachNut đã cho dau = dau->nẽt rồi thì ko cần dòng this->dau=this->dau->tiep; nữa, thứ tự vẫn như vậy
    code ra gió bão

  5. #5
    Ngày gia nhập
    03 2009
    Nơi ở
    C:\Windows\system32
    Bài viết
    18

    hàm tách nút của mình nè
    PHP Code:
    void DSLKD::tachNut(TRONUT p)
    {    
        if(
    this->dau==p)
        
    this->dau=this->dau->tiep;
        else
        {
            
    TRONUT truocP=this->dau;
            while(
    truocP->tiep!=&& truocP->tiep!=NULL)
                
    truocP=truocP->tiep;
            if(
    this->cuoi==p)
            {
                
    this->cuoi=truocP;
                
    truocP->tiep=NULL;
            }
            else
                
    truocP->tiep=p->tiep;
        }
        
    p->tiep=NULL;

    Đã được chỉnh sửa lần cuối bởi persevering : 12-04-2009 lúc 12:02 AM.

  6. #6
    Ngày gia nhập
    03 2009
    Nơi ở
    C:\Windows\system32
    Bài viết
    18

    Mặc định giải thuật quick sort trong DSLKD

    Rồi được rồi. Thank you very much!!!!

  7. #7
    Ngày gia nhập
    04 2008
    Bài viết
    336

    edit: congratulation ...
    code ra gió bão

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

  1. Thuật toán C++ Ưu nhược điểm các kiểu sort Interchange sort, Selection sort, Insertion sort, Sharke sort , Quick sort, Heap sort
    Gửi bởi duythanhnguyen trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 7
    Bài viết cuối: 23-09-2013, 01:16 AM
  2. Thuật toán quick sort viết trong C/C++?
    Gửi bởi nhoccon.uit trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 30-10-2012, 07:44 PM
  3. Chuyển giải thuật Quick Sort viết bằng C sang ngôn ngữ assembly của MIPS ISA?
    Gửi bởi lehoangphuc0601 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 18-09-2012, 06:37 PM
  4. Code sắp xếp bằng giải thuật quick sort trong lập trình C. while(A[i]<x) i++ là gì?
    Gửi bởi hackevotinh trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 12
    Bài viết cuối: 17-09-2012, 01:16 PM
  5. Giải thuật xắp xếp Quick sort, biểu diễn bằng hình ảnh giải thuật này?
    Gửi bởi yuklong trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 9
    Bài viết cuối: 09-06-2012, 09:20 AM

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