双方向リストの末尾に、ノードを追加する関数を作成したいです。
引数で指定した数だけ、双方向リストの末尾にノードを追加しようとしてます。
以下のコードを実行すると、add_tail関数内のif文 nd = NULLを通り、ノードが追加できません。
原因はなんでしょうか?
C++
1int add_tail(List* nd){ 2 static int num = 0; 3 LIST* addt; 4 addt = (LIST*)malloc(sizeof(LIST)); 5 if(addt == NULL){ 6 cout << "mallco failed" << endl; 7 return -1; 8 } 9 10 if(nd == NULL){ 11 nd = addt; 12 addt->nodeNumber = num++; 13 addt->next = addt; 14 addt->prev = addt; 15 cout << "nd == NULL" << endl; 16 }else{ 17 addt->nodeNumber = num++; 18 nd->prev->next = addt; 19 addt->prev = nd->prev; 20 nd->prev = addt; 21 addt->next = nd; 22 } 23 24 return 0; 25} 26 27int main(int argc, char* argv[]){ 28 if(argc != 2){ 29 cout << "Enter node number." << endl; 30 return -1; 31 } 32 33 LIST* li = NULL; 34 35 int argument=0; 36 37 argument = atoi(argv[1]); 38 39 for(int i=0; i < argument; i++){ 40 add_tail(li); 41 } 42 return 0; 43 44 45}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/11 14:21
2016/01/11 15:01
2016/01/12 01:56