linked list quiz key
DESCRIPTION
ECS40 DavisTRANSCRIPT
![Page 1: Linked List Quiz Key](https://reader035.vdocuments.us/reader035/viewer/2022071708/55cf9026550346703ba35343/html5/thumbnails/1.jpg)
Linked List Quiz Key 1. Write a ListNode class that will hold Person* as its data, and is used in a class named List. Include a constructor, and a destructor for the Person* class ListNode {
Person *person;ListNode *next; ListNode(const Person *p, ListNode *n) : next(n){
person = new Person(*p);} // ListNode()
~ListNode() { delete person; } // ~ListNode()}; // class ListNode 2. Write a printAll() method for the List class that relies on an overloaded << method for Person to print the contents of the list. void List::printAll() {
for(ListNode *ptr = head; ptr; ptr = ptr->next) cout << *(ptr->person);
} // printAll() 3. Assuming that the Person class has a public getName() method, write an insert method for the List class that keeps the list sorted by the names of the Persons. void List::insert(const Person *p) {
ListNode *ptr, *prev = NULL; for(ptr = head; ptr && strcmp(ptr->person->getName(), p->getName()) < 0; ptr = ptr->next) prev = ptr; if (prev) // or if (ptr != head)
prev->next = new ListNode(p, ptr); else head = new ListNode(p, ptr);} // insert()