ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 10) онлайн
Добавление новых элементов в список
Функция additem() позволяет нам добавить новый элемент в связный список. Новый элемент вставляется в начало списка (мы могли бы вставлять новый эле- мент и в конец списка, но это будет более сложным примером). Давайте последо- вательно рассмотрим действия при вставке нового элемента. Сначала мы создаем новый элемент типа link в строке
link* newlink = new link;
Таким образом, мы выделяем память для нового элемента с помощью опера- ции new и сохраняем указатель на него в переменной newlink.
Затем мы заполняем элемент нужным нам значением. При этом действия со структурой похожи на действия с классами; к элементам структуры можно получить доступ, используя операцию ->. В следующих двух строках програм- мы мы присваиваем переменной data значение, переданное как аргумент функ- ции additem(), а указателю на следующий элемент мы присваиваем значение, хранящееся в указателе first. Этот указатель содержит в себе адрес начала списка.
newlink->data = d; newlink->next = first;
И в заключение мы присваиваем указателю first значение указателя на но- вый элемент списка, first = newlink;
Смыслом всех этих действий является замена адреса, содержащегося в указателе first, на адрес нового элемента, при этом старый адрес указателя first превратится в адрес второго элемента списка. Этот процесс иллюстрирует рис. 10.16.

Рис. 10.16. Вставка нового элемента в связный список
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
