Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Danh sách liên kết đôi Giúp hiểu hàm đệ qui

    Hiện mình đang thực hiện đồ án cơ sở và sắp bảo vệ mình copy hàm đảo ngược danh sách liên kết đôi từ một tài liệu viết theo kiểu đệ qui như thế mình không hiểu ai giảng giúp mình hoặc viết dùm một hàm đảo ngược ko đệ qui với
    Mã nguồn PHP:
    void taodsd(DNode *&L){ int x; DNode *t,*dau,*cuoi; L=NULL; dau=cuoi=NULL; cout<<"

    - Nhap 0 de ket thuc -"
    ; cout<<"
    "
    ; do { cout<<"
    Nhap so cho viec tao danh sach: "
    ; cin>>x; if(x!=0) { t=new DNode; t->data=x; t->next=t->prev=NULL; if (dau==NULL) dau=cuoi=t; else { cuoi->next=t; t->prev=cuoi; cuoi=t; } } } while(x!=0); L=dau;}void indsd(DNode *L){ DNode *p=L; while(p!=NULL) { cout<<" "<<p->data; p=p->next; }}void daonguoc(DNode *L){ if(L!=NULL) { daonguoc(L->next);//vi sao viết như thế này vậy cout<<L->data<<" ";//vi sao viết như thế này vậy }}  
    Kết quả đảo ngược đúng

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    đảo ngược là sao. có nghĩa là bạn đi đến phần tử cuối cùng rồi in ngược lại đến phần tử đầu tiên.
    giả sử bạn có 1 dãy 1 2 3 4 5 6
    bạn đảo ngược thì in ra là 6 5 4 3 2 1
    muốn vậy bạn phải đi đến phần tử cuối cùng là 6
    hàm daonguoc(L->next); sẽ giúp bạn đi đến phần tử cuối cùng
    in nó ra.
    có cách không dùng đệ quy đó là
    1. dùng stack để khử đệ quy
    2. dùng dslk đôi.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •