2016-10-17 7 views
-1

私は自分のリストのための削除関数を作成しました。 どうすればチェックする機能を作ることができますか?struct()最初の数字はセマンドよりも大きい

最初のリスト番号が大きい場合は、それを削除して元に戻しますか?単独でリンクされたリストについては

Input : 1 3 4 2 4 5 2 1 33

Output: 1 3 2 4 5 1 33

void remove(node *&head, node *&last){ 
    if(isempty(head)){ 
     cout << " Saraksts ir tuksh!"<<endl;  
    } else if (head ==last) { 
     delete head; 
     head == NULL; 
     last == NULL; 
    } else { 
     node * temp = head; 
     head = head->next; 
     delete temp; 
    } 
} 
+0

固定インデントといくつかの文言を。注 - 追加された閉じ括弧。 –

+0

あなたが何をしようとしているのかははっきりしません。入力の最初のリスト番号は '1'です。**は次の数字よりも大きくはありません(' 3')。しかし数字はまだリストから削除されています。なぜそれが起こったのですか? –

+0

'head == NULL;'は 'head = NULL;'で、 'last'と同じです。 –

答えて

0

、あなたは前のノードへのポインタを維持する必要があります。これにより、前のノードのデータを現在のノード(現在のノード)と比較できます。

注文を並べ替えるには、リンクフィールドを入れ替えます。

私は、リンクされたリストで動作するとき、常にノードの絵を描くようなものをお勧めします:

+---+  +---+  +---+ 
| 5 | --> | 6 | --> | 7 | 
+---+  +---+  +---+ 
関連する問題