To find out the position of the selected value, we need to traverse the List elements. Once the selected value is matched with the value of the current position, the method just needs to return its current position index. The implementation of the Search() operation should be as follows:
template <typename T>int LinkedList<T>::Search(T val){ // If LinkedList is empty, // just return NOT_FOUND if(m_count == 0) return -1; // Need to count the index int index = 0; // Traverse from the Head node Node<T> * node = Head; // Traverse until the selected value // is matched with the value // of the current position, while(node->Value != val) { index++; node = node->Next; // This will happen