2017-09-20 5 views
0
ここ
node* nodeArray[1000]; 
for (int j = 0; j < 1000; j++){ 
nodeArray[j] = new node; 
} 
int nodeCounter = 0; 
string temporary = ""; 
string cont; //file content 
int i = 0; 
while (getline(fileObject, cont)){ 
    for (int k = 0; k < cont.length(); k++) 
    cont[k] = tolower(cont[k]); 
    while (i < cont.length()){ 

があるノードの配列内部に格納されていない。coutのラインは、それがlinkedlistsの私の配列内のノードを挿入しなければならないという点で、私のロジックが罰金であることを私に伝えます。しかし、それは実際にリンクされたリストの配列にそれらを追加していません。情報は、実際に問題の出番

//cout << "nodeArray [" << nodeCounter << "] : " << temporary << "\n"; 
    insert(nodeArray[nodeCounter], temporary); 
    temporary = ""; 
    i++; 
} 
i = 0; 
nodeCounter++; 

} 

そして、ここでは、あなたではなく、参照よりも、値によってポインタを渡しているので、アドレス渡された変数がにされて指しているプログラム

void insertion(node* tail, string info){ 
     node* temp = new node; 
     temp->data = info; 
     temp->previous = tail; 
     temp->next = NULL; 
     tail = temp; 
    } 
+0

最初の2つのコードスニペットはmain関数からのものですか?明確なコードを共有してください。 –

+0

はい、それはmain関数からです。ただし、挿入機能は別です。これは、標準のリンクリストノード構造を補完します。 –

+1

ローカル変数のテールを変更します。 –

答えて

2

をいじりされる可能性があります私の挿入機能です変更されません。

変更 void insertion(node* tail, string info){ void insertion(node*& tail, string info){に。

+0

これは、配列に追加される問題を修正しました。今は、配列内の個々のリンクされたリストにノードを追加する代わりに、ノードを上書きするという問題があります。 –

+0

@ ZacharyCollinsの尾は尾ではなく頭です。 –

関連する問題