リストの最後にオブジェクトを挿入する単一リンク リストのメソッドを作成しました。これは、線形時間 O(n) で記述されます。
この同じタスクを実行するにはどうすればよいでしょうか。ただし、コードを一定時間 (O(1)) で記述するにはどうすればよいでしょうか?
リニアタイムコード O(n):
template <class Object>
void List<Object>::insert_back( const Object& data ) {
ListNode<Object>* newnode = new ListNode<Object>( data, NULL );
ListNode<Object>* lastNode = head;
while (lastNode->getNext()!= NULL && lastNode->getNext()->getElement() != data )
lastNode = lastNode->getNext();
lastNode->setNext( newnode );
}