// Ch 17 Programming Challenge solution #include using std::cout; #include "list.h" // concatenates second List argument to the first template< class T > void concatenate( List< T > &first, List< T > &second ) { List< T > temp( second ); // create a copy of second // variable to store removed item from temp T value; while ( !temp.isEmpty() ) { // remove value from temp list temp.removeFromFront( value ); // insert at end of first list first.insertAtBack( value ); } // end while } // end function concatenate int main() { List< char > list1; List< char > list2; char c; for ( c = 'a'; c <= 'e'; ++c ) list1.insertAtBack( c ); list1.print(); for ( c = 'f'; c <= 'j'; ++c ) list2.insertAtBack( c ); list2.print(); concatenate( list1, list2 ); cout << "The new list1 after concatenation is:\n"; list1.print(); return 0; } // end main /************************************************************************** * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and Prentice * * Hall. All Rights Reserved. * * * * DISCLAIMER: The authors and publisher of this book have used their * * best efforts in preparing the book. These efforts include the * * development, research, and testing of the theories and programs * * to determine their effectiveness. The authors and publisher make * * no warranty of any kind, expressed or implied, with regard to these * * programs or to the documentation contained in these books. The authors * * and publisher shall not be liable in any event for incidental or * * consequential damages in connection with, or arising out of, the * * furnishing, performance, or use of these programs. * *************************************************************************/