2017-05-27 10 views
-3

私のコードはこれです。 ノードをノード*に変換できません。 参照渡しを使用して実装する方法を教えてください。あなたがしたい場合は、関数へのポインタを渡しているリンクリストで参照渡しを使用中に問題が発生しました

#include <iostream> 
    using namespace std; 

    struct node 
    { 
     int data; 
     node* next; 
    }; 

node* insertfront(node &root, int v) 
{ 
node* temp = NULL; 
temp->data = v; 
temp->next = root; 
return temp; 
} 


int main() 
{ 
node* root; 
root = insertfront(root,5); 
return 0; 
} 
+1

ヒントのようにすべきだと思います。 – melpomene

+0

@melpomeneの助言に従った後、 'node * root = NULL;'を変更し、 'insertfront()'関数でそのケースを処理してください。また、その関数内の追加されたノードにメモリを割り当てるためのコードを追加します。 –

答えて

1

は、あなたが機能

node* insertfront(node *&root, int v) 

を使用すると、ノードへの参照をしたい場合に

root = insertfront(*root,5); 

ようにそれを渡し、または変更する必要がありますノードへのポインタへの参照。 また、node* temp = NULL;を変更する必要があります。おそらく、ヒープ上でメモリ割り当てを使用する必要があります。つまり、newを使用することです。 `型シグネチャは、おそらく`でなければなりません空insertfront(ノード*&ルート、int型V):

node *temp = new node; 

は、私はあなたの関数は、多かれ少なかれ見て、この

node* insertfront(node *&root, int v) 
{ 
    node* temp = new node; 
    temp->data = v; 
    temp->next = root; 
    return temp; 
} 
+0

私のコメントで述べたように、より多くの問題があります。コード内のすべての問題(完全な例を含む)を入力するか、コメントを残してください(すでに行われているように)。このような答えは、OPが「今問題がある」と不平を言っただけです。 –

関連する問題