簡體   English   中英

C程序到C ++ B + Tree

[英]C program to C++ B+ Tree

我通常使用C編寫代碼,但是嘗試學習C ++並且我一直在實現一個B + Tree並且遇到一些錯誤。 這是我的功能

void print_leaves(node *root)
{
    int i;
    node *c = root;
    if (root == NULL) {
        cout << "Empty tree" << endl;
        return;
    }
    while (!c->is_leaf)
    {
        c = c->pointers[0];
    }
    while (true)
    {
        for (i = 0; i < c->num_keys; i++)
        {
            printf("%d ", c->keys[i]);
        }

        if (c->pointers[order - 1] != NULL)
        {
            cout << " | ";
            c = c->pointers[order - 1];
        }
        else
            break;
    }
    cout << endl;
}

這是我得到的錯誤:

C:\Users\Main\Desktop\test.cpp||In function 'void print_leaves(node*)':|
C:\Users\Main\Desktop\test.cpp|95|error: invalid conversion from 'void*' to 'node*' [-fpermissive]|
C:\Users\Main\Desktop\test.cpp|107|error: invalid conversion from 'void*' to 'node*' [-fpermissive]|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

我已經在網上看到並且看到了malloc功能,但是我現在還沒有使用它。 Thaks

在C ++中,與C不同, void*不會自動轉換為其他指針類型。

你可能不應該在這個程序中使用void* node應指向其他node ,而不是指向未知的內存塊,因此需要為這些指針指定適當的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM