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

Đề tài: Lỗi trong code tìm kiếm rộng dùng 2 queue DONG MO = danh sách móc nối

  1. #1
    Ngày gia nhập
    07 2010
    Nơi ở
    hà nội
    Bài viết
    31

    Mặc định Lỗi trong code tìm kiếm rộng dùng 2 queue DONG MO = danh sách móc nối

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<stdlib.h>
    4. #define MAX 8
    5. //nhap vao do thi, do thi duoc luu duoi dang ma tran ke
    6. int DoThi[MAX][MAX] = {
    7.     0,  1,  1,  1,  0,  0,  0,  0,  //A noi den B,C,D
    8.     0,  0,  0,  0,  1,  1,  0,  0,  //B noi den E,F
    9.     0,  0,  0,  0,  0,  1,  0,  0,  //c noi den F
    10.     0,  0,  0,  0,  0,  0,  0,  0,  //D noi den NULL
    11.     0,  0,  0,  0,  0,  0,  0,  0,  //E noi den NULL
    12.     0,  0,  0,  0,  0,  0,  1,  0,  //F noi den G
    13.     0,  0,  0,  0,  0,  0,  0,  1,  //G noi den H
    14.     0,  0,  0,  0,  0,  0,  0,  0,  //H noi den NULL
    15.     };
    16.  
    17. typedef struct node{
    18.     int value;
    19.     struct node *pNext;
    20. };
    21.  
    22.     //tao cach danh sach lien ket moc noi
    23. node *MO, *DONG, *firstD= NULL, *lastD, *firstM= NULL, *lastM;
    24. int Color[MAX];
    25.  
    26. void init(){                //Dinh chua duoc tham (dinh trang) co gia tri -1
    27.     int i;                  //Dinh dang duoc tham (dinh xam) co gia tri 0
    28.     for(i=0; i<MAX; i++)    //Dinh da tham (dinh mau den) co gia tri 1
    29.         Color[i]=-1;
    30.     }
    31.  
    32. void h_lay(node *&firstMO){
    33.     //bo sung node tu mo vao danh sach dong
    34.     DONG = (node*)calloc(1,sizeof(node));
    35.     if(MO!=NULL){
    36.         DONG->value=firstMO->value;
    37.         DONG->pNext= NULL;
    38.         if (firstD!= NULL) lastD->pNext=DONG;
    39.         else firstD= DONG;
    40.         lastD= DONG;
    41.     }  
    42. }
    43.  
    44.  
    45. void h_duyet(int s){
    46.     //thao tac duyet de bo sung vao danh sach mo (call h_lay)
    47.     int u=s;                                            // lay dinh goc o do thi cho vao DONG
    48.     MO = (node*)calloc(1,sizeof(node));                 //
    49.     MO->value=s;                                        //Dinh goc= 0
    50.     MO->pNext=NULL;                                     //dinh goc tro den NULL
    51.     firstM=MO;                                          //2 con tro tro den dinh goc
    52.     lastM=MO;                                           //
    53.     Color[s];
    54.     init();// khoi tao do thi
    55.     while(MO!= NULL){                       //den vong while thu 2 F se lai bi them vao MO. vay nen can them bien color de k bi lap.
    56.         for (int i=0; i<= MAX; i++)                         // vong1                            vong2                           vong3
    57.             if(Color[i]== -1 && DoThi[u][i]== 1){       // Dothi[0][1] (chinh la B)         Dothi[0][2](chinh la c)         Dothi[0][3]( la D)
    58.                 MO=(node*)calloc(1,sizeof(node));       //                                 
    59.                 MO->value=i;                            //         
    60.                 MO->pNext=NULL;                         //         
    61.                 lastM->pNext=MO;                        //noi tu dinh goc den B             noi tu B - C                    noi tu C-D
    62.                 lastM=MO;                               //tro lastD den B                   tro lastD den C                 tro lastD den D
    63.                 Color[i]=0;
    64.             }
    65.         u++;
    66.         h_lay(firstM);
    67.         firstM=firstM->pNext;
    68.         free(firstM);
    69.     }
    70. }
    71.  
    72. char ChuyenTuSoSangTen(int t){
    73.     return t+'A';
    74. }
    75. void main(){
    76.     h_duyet(0);
    77.     system("pause");
    78.     //in cac dinh da duyet
    79.     DONG=firstD;
    80.     while(DONG!= NULL){
    81.         printf("%s -->",ChuyenTuSoSangTen(DONG->value));
    82.         DONG= DONG->pNext;
    83.     }
    84. }
    85.  
    86.  
    87. // chuong trinh chi dang duyet cho het cay do thi chu chua tim duong di ngan nhat
    Các bác giúp fix cái lỗi này với. Chắc là do con chuyền con trỏ vào h_duyet có vấn đề. cảm ơn các bác nhiều
    chúc các bạn học tập vui vẻ!

  2. #2
    Ngày gia nhập
    07 2010
    Nơi ở
    hà nội
    Bài viết
    31

    Closed..................................
    chúc các bạn học tập vui vẻ!

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

  1. Trả lời: 0
    Bài viết cuối: 12-05-2012, 05:52 PM
  2. Lập trình C++ cộng trừ hai đa thức dùng danh sách liên kết móc nối
    Gửi bởi ma_nu_khong_ten 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: 05-05-2011, 08:48 AM
  3. Danh sách móc nối đơn trong lập trình C++
    Gửi bởi fithou trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 21-10-2010, 07:14 PM
  4. Code quản lý, tìm kiếm danh sách sử dụng danh sách liên kết đơn
    Gửi bởi anther 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: 02-09-2010, 09:25 AM
  5. Kỹ thuật C Xử lý danh sách móc nối trong lập trình C
    Gửi bởi chippro 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-10-2008, 05:03 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