0

テンプレート化されていない C++ linkedList で検索関数を実装するにはどうすればよいでしょうか?

remove 関数は次のように実装されます。

 bool LinkedList::remove(Node* n)
 {
      Node *temp = front, *prev = 0;

      for(int i = 0;i < size; i++)
      {
           if (temp == n) 
           {
                if (temp == front)
                {
                     front = n->next;
                } 
                else 
                {
                     prev->next = temp->next;
                }

               delete temp;
               size --;
               return true;
          }
          prev = temp;
          temp = temp->next;
     }
     return false;
}
4

1 に答える 1

1

ここにヒントがあります。remove()関数は、必要なほとんどすべてのことfind()をすでに行っています。保持するビットと削除するビットを把握するだけです。追加する必要があるものは、あるとしても最小限です。find()指定していない の API に依存します。

于 2012-11-27T14:20:58.493 に答える