// listdriver.cpp - test driver for List ADT #include using namespace std; #include "List.h" void print( List aList ) { cout << aList << endl; // indirectly tests List::display() method } string empty( List& aList ) { return aList.empty() ? "empty" : "not empty"; } int main() { cout << "*** Next Statement: List list1;\n"; List list1; cout << "*** Next Statement: cout << \"list1 is \" << empty(list1);\n"; cout << "list1 is " << empty(list1) << "\n\n"; for (int i = 0; i <= 4; i++) { cout << "*** Next Statement: list1.insert(" << i << ", " << i << ");\n"; list1.insert(i, i); } cout << "*** Next Statement: print(list1);\n"; print(list1); cout << "*** Next Statement: cout << \"list1 is \" << empty(list1);\n"; cout << "list1 is " << empty(list1) << "\n"; cout << "\n*** Next Statement: List list2(list1);\n"; List list2(list1); cout << "*** Next Statement: print(list2);\n"; print(list2); cout << "\n*** Next Statement: List list3;\n"; List list3; cout << "*** Next Statement: list3 = list2;\n"; list3 = list2; cout << "*** Next Statement: print(list3);\n"; print(list3); cout << "*** Next Statement: list3.erase(0);\n"; list3.erase(0); cout << "*** Next Statement: print(list3);\n"; print(list3); cout << "*** Next Statement: list3.erase(list3.nodeCount()-1);\n"; list3.erase(list3.nodeCount()-1); cout << "*** Next Statement: print(list3);\n"; print(list3); cout << "*** Next Statement: list3.erase(list3.nodeCount());\n"; list3.erase(list3.nodeCount()); cout << "*** Next Statement: print(list3);\n"; print(list3); cout << "\n*** Next Statement: cout << list3.search(2);\n"; cout << list3.search(2) << "\n"; cout << "*** Next Statement: cout << list3.search(13);\n"; cout << list3.search(13) << "\n"; cout << "\n*** Next Statement: list3.reverse();\n"; list3.reverse(); cout << "*** Next Statement: print(list3);\n"; print(list3); cout << "\n*** Next Statement: cout << list3.ascendingOrder();\n"; cout << boolalpha << list3.ascendingOrder() << "\n"; cout << "*** Next Statement: cout << list2.ascendingOrder();\n"; cout << boolalpha << list2.ascendingOrder() << "\n"; cout << "\n*** Next Statement: return 0;\n"; return 0; }