Исправьте функцию additem из программы LINKLIST так, что бы она добавляла новый элемент в конец списка, а не в начало. Это будет означать, что первый вставленный элемент будет выведен первым и результат работы программы будет следующим : 25 36 49 64 Для того чтобы добавить элемент, вам необходимо будет пройти по цепи до конца списка, а затем изменить указатель последнего элемента так, чтобы он указывал на новый элемент.
| Код | // linklist.cpp // linked list #include <iostream> using namespace std; //////////////////////////////////////////////////////////////// struct link //one element of list { int data; //data item link* next; //pointer to next link }; //////////////////////////////////////////////////////////////// class linklist //a list of links { private: link* first; //pointer to first link public: linklist() //no-argument constructor { first = NULL; } //no first link void additem(int d); //add data item (one link) void display(); //display all links }; //-------------------------------------------------------------- void linklist::additem(int d) //add data item { link* newlink = new link; //make a new link newlink->data = d; //give it data newlink->next = first; //it points to next link first = newlink; //now first points to this } //-------------------------------------------------------------- void linklist::display() //display all links { link* current = first; //set ptr to first link while( current != NULL ) //quit on last link { cout << current->data << endl; //print data current = current->next; //move to next link } } //////////////////////////////////////////////////////////////// int main() { linklist li; //make linked list
li.additem(25); //add four items to list li.additem(36); li.additem(49); li.additem(64);
li.display(); //display entire list return 0; } |
|