Ladizzz

Untitled

Oct 26th, 2021
998
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. struct person {
  2.     string name;
  3.     string surname;
  4.     string secondname;
  5. };
  6.  
  7. struct list_element
  8. // Структура одного элемента из списка
  9. {
  10.     person person;      // поле данных - структура с ФИО
  11.     list_element* next; // указатель на следующий элемент
  12.     list_element* prev; // указатель на предыдущий элемент
  13. };
  14.  
  15. struct list_element* init(person input)  
  16. // Функция для создания списка
  17. {
  18.     struct list_element* temp = new list_element; // создаем новый элемент списка
  19.     temp->person = input; // заносим в данные структуру, которую передали в функцию
  20.     temp->next = temp;    // указатель на следующий равен адресу этого же элемента
  21.     temp->prev = temp;    // указатель на предыдущий равен адресу этого же элемента
  22.     return temp;          // возвращаем элемент
  23. }
  24.  
  25. struct list_element* addelem(list_element* lst, person input)
  26. // Функция для добавления элемента в конец списка
  27. {
  28.     struct list_element *p; // для хранения указателя на начало списка
  29.     struct list_element *temp = new list_element; // создаем новый элемент списка
  30.     p = lst->next; // заносим указатель на следующий за последним -> т.к. список кольцевой, то это ук-ль на начало
  31.     lst->next = temp; // в указатель на следующий последнего эл-та заносим адрес нового элемента
  32.     temp->person = input; // заносим в данные структуру, которую передали в функцию
  33.     temp->next = p; // указатель на следующий за новым эл-том будет равен ук-лю на начало
  34.     temp->prev = lst; // указатель на предыдущий равен текущему последнего
  35.     p->prev = temp; // предыдущий эл-нт перед первым будет равен нашему новому эл-ту
  36.     return temp; // возвращаем ук-ль на добавленный элемент
  37. }
RAW Paste Data