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

Đề tài: Chèn phần tử vào cây tìm kiếm nhị phân

  1. #1
    Ngày gia nhập
    07 2011
    Bài viết
    1

    Mặc định Chèn phần tử vào cây tìm kiếm nhị phân

    có bạn nào biết tạo hàm chèn phần tử vào cây BST mà không sử dụng đệ quy không?giúp minh với..thank

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

    Bạn có thể dùng while để thay thế, trong vòng while thì chuyển đổi nút cha về các nút con tùy từng trường hợp, nó cũng gần như đệ qui thôi !
    C++ Code:
    1. while ( you_live) {
    2. if (you_failed) try_again();
    3. else if ( you_won) find_new_challenge();
    4. }
    5. system("DEATH");
    6. return HELL;

  3. #3
    Ngày gia nhập
    11 2010
    Bài viết
    33

    chèn vào cây NPTK thì phải tìm node thích hợp để chèn sau đó gán địa chỉ với giá trị vào chỗ cần chèn thôi.

  4. #4
    Ngày gia nhập
    07 2011
    Nơi ở
    SG
    Bài viết
    3

    void Insert (NODE *&pRoot, int x)
    {
    if (pRoot == NULL)
    {
    NODE *q;
    q = new NODE;
    q->Key = x;
    q->pLeft = q->pRight = NULL;
    pRoot = q;
    }
    else
    {
    if (x < pRoot->Key)
    Insert (pRoot->pLeft, x);
    else if (x > pRoot->Key)
    Insert (pRoot->pRight, x);
    }
    }


    Nếu ko muốn đệ quy thì cái chổ nào có dòng đệ quy mình ghi lại y chang phần trên mà thay đổi tên biến cho thích hợp thôi.
    I love you all my life !!

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

    Trích dẫn Nguyên bản được gửi bởi only_love Xem bài viết
    có bạn nào biết tạo hàm chèn phần tử vào cây BST mà không sử dụng đệ quy không?giúp minh với..thank
    Đây nhé bạn : Hy vọng bạn sẽ đọc được.
    Code:
       Node insert(Node root, int x) {
            //using recursive
    //        if (p == null) {
    //         p = new Node(x);
    //         return p;
    //         }
    //         if (p.info == x) {
    //         System.out.println("The key" + x + "Already exists, no insertion");
    //         return p;
    //         }
    //         if (x < p.info) {
    //         p.left = insert(p.left, x);
    //         } else {
    //         p.right = insert(p.right, x);
    //         }
    //         return p;
            //not using recursive
    
            if (root == null) {
                root = new Node(x);
                return root;
            }
            Node f, p;
            p = root;
            f = null;
            while (p != null) {
                if (p.info == x) {
                    System.out.println(" The key " + x + " already exists, no insertion");
                    return p;
                }
                f = p;
                if (x < p.info) {
                    p = p.left;
                } else {
                    p = p.right;
                }
            }
            if (x < f.info) {
                f.left = new Node(x);
            } else {
                f.right = new Node(x);
            }
            return root;
        }

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

  1. tạo mục tìm kiếm trên masterpage làm sao có thể hiển sản phẩm tìm kiếm ra được
    Gửi bởi thuan trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 6
    Bài viết cuối: 22-05-2012, 10:38 PM
  2. Cấu trúc dữ liệu Không hiển thị kết quả tìm kiếm ở phần tìm kiếm nhị phân theo mảng??
    Gửi bởi nangtienxanhhanhphuc trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 2
    Bài viết cuối: 02-12-2011, 09:32 AM
  3. Cách kiểm tra cây có phải là cây nhị phân tìm kiếm?
    Gửi bởi freb 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: 20-01-2011, 07:03 PM
  4. tìm kiếm tất cả phần tử và xóa phần tử?
    Gửi bởi danchithancong trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 28-09-2009, 03:28 PM
  5. Làm 1 Phần Mềm kế toán cần có những kiến thức gì??
    Gửi bởi AdminPro trong diễn đàn Tuyển dụng - Việc làm CNTT
    Trả lời: 5
    Bài viết cuối: 08-02-2009, 10:42 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