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 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Hiểu rõ đệ qui trong duyệt cây nhị phân(inorder) như thế nào?

    mình mới học tới phần cây đọc trong sách thấy ghi code duyệt cây nhị phân theo đệ qui.nhưng lại không giải thích rõ cơ chế máy sẽ dịch lệnh nhu thế nào nên mình k hiểu.
    mong mọi người ai biết chỉ mình với :
    cụ thể đây là code duyệt cây nhị phân theo thứ tự giữa(inorder)
    Mã nguồn PHP:
    void inorder(treenode* n){ if(n!=NULL){ inorder(n->left); printf("%3d",n->key); inorder(n->right); } }  
    mình không hiểu trường hợp suy biến ở đây là gì.bao h thì thôi dừng gọi hàm(đệ qui) và khi nào thì nó sẽ thực hiện lệnh printf.tóm lại là mình không hiểu cơ chế máy dịch code này như thế nào cả

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn có thể viết lại như thế này cho dễ hiểu.
    Mã:
    void inorder(treenode* n){ 
        if( n== NULL)
        {
            return;
        }
        else{ 
            inorder(n->left); 
            printf("%3d",n->key); 
            inorder(n->right); 
        } 
    }
    Điều kiện dừng đệ quy khi Node == null;
    với hàm đó thì sẽ duyệt theo thứ tự Left - Node - Right

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Quên cái chữ "cây" ra khỏi đầu đi
    Và hãy nhớ lại coi Đệ quy là gì ? .
    Đệ quy cơ bản đã hiểu chưa mà o ép vào thêm cho đệ quy cây nữa cho loạn não ?

 

 

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
  •