int main () { // Construct a linked list with header & trailer cout << "Create a new list" << endl; DoublyLinkedList<string> dll; cout << "list: " << dll << endl << endl; // Insert 10 nodes at back with value 10,20,30,..,100 cout << "Insert 10 nodes at back with value 10,20,30,..,100" << endl; for (int i=10;i<=100;i+=10) { stringstream ss; ss << i; dll.insertLast(ss.str()); } cout << "list: " << dll << endl << endl; // Insert 10 nodes at front with value 10,20,30,..,100 cout << "Insert 10 nodes at front with value 10,20,30,..,100" << endl; for (int i=10;i<=100;i+=10) { stringstream ss; ss << i; dll.insertFirst(ss.str()); } cout << "list: " << dll << endl << endl; // Copy to a new list cout << "Copy to a new list" << endl; DoublyLinkedList<string> dll2(dll); cout << "list2: " << dll2 << endl << endl; // Assign to another new list cout << "Assign to another new list" << endl; DoublyLinkedList<string> dll3=dll; cout << "list3: " << dll3 << endl << endl; // Delete the last 10 nodes cout << "Delete the last 10 nodes" << endl; for (int i=0;i<10;i++) { dll.removeLast(); } cout << "list: " << dll << endl << endl; // Delete the first 10 nodes cout << "Delete the first 10 nodes" << endl; for (int i=0;i<10;i++) { dll.removeFirst(); } cout << "list: " << dll << endl << endl; // Check the other two lists cout << "Make sure the other two lists are not affected." << endl; cout << "list2: " << dll2 << endl; cout << "list3: " << dll3 << endl; return 0; }
void insert(double dd, int method) // 1: first; 2: last { if(!isFull()) { switch(method) { case 1: dll->insertFirst(dd); break; case 2: dll->insertLast(dd); break; default: cout << "Deque::insert(): unknown insertion method: insert first\n"; dll->insertFirst(dd); break; } // end switch nElems++; } // end if else cout << "Deque::insert(): cannot insert " << dd << ", deque is full\n"; } // end insert()