Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: [ Solved ]Lỗi hàm SearchNode,mình ko biết nó bị làm sao nữa,thank

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

    Unhappy [ Solved ]Lỗi hàm SearchNode,mình ko biết nó bị làm sao nữa,thank

    C Code:
    1. #include<conio.h>
    2. #include<stdio.h>
    3. #include<stdlib.h>
    4. typedef int data;
    5.  
    6. typedef struct tagTnode
    7. {
    8.     data key;
    9.     struct tagTnode *Left,*Right;
    10. }Tnode;
    11.  
    12. typedef Tnode *TREE;
    13.  
    14. void CreateTree(TREE &T)
    15. {
    16.     T=NULL;
    17. }
    18.  
    19. Tnode *CreateTnode(int x)
    20. {
    21.     Tnode *p;
    22.     p=new Tnode;
    23.     if(p==NULL) exit(1);
    24.     else
    25.     {
    26.         p->key=x;
    27.         p->Left=NULL;
    28.         p->Right=NULL;
    29.     }
    30.     return p;
    31. }
    32.  
    33. int insertTnode(TREE &T,data x)
    34. {
    35.     if (T)
    36.     {
    37.         if (T->key==x) return 0;
    38.         if (T->key>x) return insertTnode(T->Left,x);
    39.         else return insertTnode(T->Right,x);
    40.     }
    41.     T=new Tnode;
    42.     T->key=x;
    43.     T->Left=T->Right=NULL;
    44.     return 1;
    45. }
    46.  
    47. void Nhap(TREE& T)
    48. {
    49.     data a;
    50.     while (1)
    51.     {
    52.         printf("nhap phan tu:");
    53.         scanf("%d",&a);
    54.         if (a==-1) break;
    55.         insertTnode(T,a);
    56.     }
    57. }
    58. void searchNode(Tnode*T,data y)
    59. {
    60.     printf("nhap phan tu can tim:");
    61.     scanf("%d",&y);
    62.     if(T==NULL)
    63.     printf("khong tim thay");
    64.     else
    65.     {
    66.        
    67.         if(T->key>y)  searchNode(T->Left,y);
    68.         else
    69.         if(T->key<y)  searchNode(T->Right,y);
    70.         if(T->key==y) printf("tim thay");
    71.     }
    72.    
    73. }  
    74.  
    75. void Xuat(TREE T)
    76. {
    77.     if(!T) return;
    78.     Xuat(T->Left);
    79.  
    80.     Xuat(T->Right);
    81.     printf("%4d",T->key);
    82. }
    83.  
    84. void main()
    85. {
    86.     clrscr();
    87.     data b;
    88.     TREE T;
    89.     CreateTree(T);
    90.     Nhap(T);
    91.     Xuat(T);
    92.     searchNode(T,b);
    93.     getch();
    94.    
    95. }

    Vui lòng để code vào tag code. Đọc Nội quy để biết thêm chi tiết
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 28-05-2008 lúc 08:58 PM. Lý do: Nhắc nhở

  2. #2
    Ngày gia nhập
    07 2007
    Nơi ở
    Sơn La
    Bài viết
    133

    C++ Code:
    1. void searchNode(Tnode*T,data y)
    2. {
    3.         printf("nhap phan tu can tim:");
    4.                 scanf("%d",&y);
    5.         if(T==NULL)
    6.                 printf("khong tim thay");
    7.         else
    8.         {
    9.  
    10.                 if(T->key>y) searchNode(T->Left,y);
    11.                 else
    12.                         if(T->key<y) searchNode(T->Right,y);
    13.                 if(T->key==y) printf("tim thay");
    14.         }
    15. }
    Bạn dùng đệ quy, mỗi lần như vậy thì nó lại iu cầu bạn
    nhập phần tử cần tìm
    Bạn nên tách cái dưới ra một hàm riêng.
    if(T==NULL)
    printf("khong tim thay");
    Nên thay là danh sách rỗng, vui lòng nhập danh sách.
    và cái phần tách riêng nên thay là như sau:
    C++ Code:
    1. {
    2.        if(T==NULL)
    3.               return false;
    4.        if(T->key==y)
    5.               return true;
    6.        if(T->key>y)
    7.               searchNode(T->Left,y);
    8.        else
    9.               searchNode(T->Right,y);
    10.        return false;
    11. }
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.

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

  1. Tại sao lại phải dùng biến con trỏ!!???
    Gửi bởi duydx 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: 09-08-2013, 11:01 AM
  2. [ Solved ]Class đơn thức,đa thức.ai biết chỉ đệ cái
    Gửi bởi newcommer trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 05-11-2008, 10:32 AM
  3. [ Solved ]Đọc từ file mỗi dòng là giá trị của một biến.
    Gửi bởi PDV 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: 27-10-2008, 04:08 PM
  4. [ Solved ]Có ai biết lỗi này không
    Gửi bởi minhduc89tn trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 15-10-2008, 11:26 PM
  5. [ Solved ]Thứ tự các biến và kích thước lớp
    Gửi bởi sonhn trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 21-05-2007, 04:15 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