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

Đề tài: Danh sách liên kết đôi, chạy ra nhiều lỗi làm sao sửa hết?

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

    Mặc định Danh sách liên kết đôi, chạy ra nhiều lỗi làm sao sửa hết?

    Mình có 1 bài về danh sách liên kết đôi thế này
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. struct DATA
    4. {
    5.     int key;
    6. };
    7. struct DNODE
    8. {
    9.     DATA info;
    10.     DNODE *next;
    11.     DNODE *prev;
    12. };
    13. struct DLIST
    14. {
    15.     DNODE *PHead;
    16.     DNODE *PTail;
    17. };
    18. void InitDList(DLIST &L)
    19. {
    20.     L.PHead=L.PTail=NULL;
    21. }
    22. DNODE *GetDNode(DATA x)
    23. {
    24.     DNODE *P;
    25.     P=new DNODE;
    26.     P->info=x;
    27.     P->next=P->prev=NULL;
    28.     return P;
    29. }
    30. //THEM VAO DAU DANH SACH
    31. void InsertDHead(DLIST &L,DATA x)
    32. {
    33.     DNODE *P=GetDNode(x);
    34.     if(L.PHead==NULL&&L.PTail==NULL)
    35.         L.PHead=L.PTail=P;
    36.     else
    37.     {   P->next=L.PHead;
    38.         L.PHead->prev=P;
    39.         L.PHead=P;
    40.     }
    41. }
    42. //THEM VAO SAU 1 NODE
    43. void InsertAfter(DLIST &L, DNODE *P, DATA x)
    44. {
    45.  
    46.     DNODE *dnode=GetDNode(x);
    47.     if(P!=NULL)
    48.     {       DNODE *R=P->next;
    49.         dnode->next=R;
    50.         dnode->prev=P;
    51.         P->next=dnode;
    52.         R->prev=dnode;
    53.     }
    54.     else
    55.         InsertDHead(L,x);
    56. }
    57. void DuyetDList(DLIST  L)
    58. {
    59.     DNODE *P;
    60.     P=L.PTail;
    61.     while(P!=NULL)
    62.     {
    63.         printf("%d ",P->info);
    64.         P=P->prev;
    65.  
    66.  
    67.     }
    68. }
    69.  
    70. DNODE * Search(DLIST L,DATA x)
    71. {
    72.     DNODE *P;
    73.     P=L.PHead;
    74.     while(P!=NULL)
    75.     {
    76.         if(x.key==P->info.key)
    77.             return P;
    78.  
    79.         P=P->next;
    80.     }
    81.     return NULL;
    82. }
    83. void main()
    84. {       clrscr();
    85.  
    86.     DLIST L;
    87.     InitDList(L);
    88.     DNODE *P,*KT;
    89.  
    90.     DATA x,y,t;
    91.     do{
    92.     printf("Gia tri= ");
    93.     scanf("%d",&x.key);
    94.     if(x.key>=0)
    95.  
    96.         InsertDHead(L,x);
    97.  
    98.     }while(x.key>=0);
    99.  
    100.     DuyetDList(L);
    101.     printf("\n");
    102.     printf("Nhap node can tim\n");
    103.     scanf("%d",&y.key);
    104.     KT=Search(L,y);
    105.     if(KT!=NULL)
    106.         printf("Tim thay y\n");
    107.     else
    108.         printf("Khong tim thay y\n");
    109.     printf("Nhap node can them vao sau y\n");
    110.     scanf("%d",&t.key);
    111.     InsertAfter(L,KT,t);
    112.     DuyetDList(L);
    113.     getch();
    114. }
    Vấn đề nằm ở chỗ hàm thêm sau 1 node không hoạt động được, mong các bạn giúp đỡ. Cám ơn rất nhiều!
    Đã được chỉnh sửa lần cuối bởi yuka89 : 23-12-2008 lúc 10:01 PM. Lý do: sửa code

  2. #2
    Ngày gia nhập
    03 2009
    Bài viết
    10

    bác còn code nào thì share cho anh em tham khảo và cho ý kiến nhé. Thanks!

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

  1. Mã nguồn C Lỗi danh sách liên kết hàm free() khi chạy báo lỗi
    Gửi bởi huuson94 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 22-11-2013, 11:23 AM
  2. Mã nguồn C Lỗi xóa node trong danh sách liên kết đơn. Giúp mình với, cám ơn nhiều !!!
    Gửi bởi shizuoka trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 09-09-2012, 09:02 PM
  3. Bài tập C++ Tìm năm có nhiều khóa luận nhất trong danh sách liên kết
    Gửi bởi truonglong99 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 13-11-2011, 10:47 AM
  4. Đọc code danh sách liên kết nhiều lần nhưng ko hiểu nổi
    Gửi bởi shumo trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 27-10-2011, 02:27 AM
  5. danh sách liên kết tăng chạy sai một số trường hợp?
    Gửi bởi khongcochi 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: 29-06-2011, 06:44 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