#include "../List.h" #include #include using std::cout; using std::endl; int main() { List l; l.push_back(new ListNode(1)); l.push_back(new ListNode(2)); l.push_back(new ListNode(3)); l.push_back(new ListNode(4)); l.push_back(new ListNode(5)); l.push_back(new ListNode(6)); l.push_back(new ListNode(7)); l.push_back(new ListNode(8)); cout << "List:" << endl; for (List::iterator i = l.begin(); i != l.end(); ++i) { cout << *i << endl; } cout << endl; for (List::iterator i = l.begin(); i != l.end(); ++i) { if ((*i) == 4) l.remove(i); } std::cerr << "Removed 4 (by iterator)...\n"; for (List::iterator i = l.begin(); i != l.end(); ++i) { cout << *i << endl; } cout << endl; l.remove(1); std::cerr << "Removed 1 (head) (by value)...\n"; for (List::iterator i = l.begin(); i != l.end(); ++i) { cout << *i << endl; } cout << endl; for (List::iterator i = l.begin(); i != l.end(); ++i) { if ((*i) == 2) l.remove(i); } std::cerr << "Removed 2 (head) (by iterator)...\n"; for (List::iterator i = l.begin(); i != l.end(); ++i) { cout << *i << endl; } cout << endl; l.remove(5); std::cerr << "Removed 5 (by value)...\n"; for (List::iterator i = l.begin(); i != l.end(); ++i) { cout << *i << endl; } cout << endl; l.remove(8); std::cerr << "Removed 8 (tail) (by value)...\n"; for (List::iterator i = l.begin(); i != l.end(); ++i) { cout << *i << endl; } cout << endl; for (List::iterator i = l.begin(); i != l.end(); ++i) { if ((*i) == 7) l.remove(i); } std::cerr << "Removed 7 (tail) (by iterator)...\n"; for (List::iterator i = l.begin(); i != l.end(); ++i) { cout << *i << endl; } cout << endl; List r; r.push_back(new ListNode(9)); r.remove(9); std::cerr << "Should not see ANY numbers:\n"; for (List::iterator i = r.begin(); i != r.end(); ++i) { cout << *i << endl; } return 0; }