#cpp #visual_studio #список #односвязный_список
Есть код: struct Element //структура задающая элемент односвязного списка { int data; //информационное поле для хранения данных Element *next; //указатель на следующий элемент } *start, *current; void create_list(int a) { current = new Element; current->data = a; current->next = NULL; start = current; } void new_element(int a) { Element *q; q = new Element; q->data = a; q->next = current->next; current->next = q; } void delete_element(int a) { while (current->data != a) { current = current->next; if (current->data == a) { delete current; } } } Не совсем понял, что происходит в этих строчках: current->next = NULL; функции create_list(int) и q->data = a; q->next = current->next; current->next = q; функции new_element(int) Объясните, пожалуйста.
Ответы
Ответ 1
Первый - current->next = NULL; просто устанавливает элемент, на который указывает current, последним в списке - за ним (next) ничего нет. q->data = a; q->next = current->next; current->next = q; Это просто вставляет элемент после current - теперь новый элемент q указывает туда же, куда раньше указывал элемент, на который указывал current, а он теперь указывает на q. Вот примерный набросок - простите уж за отсутствие художественного таланта :) Видите? разорвали связь и воткнули туда новый элемент...
Комментариев нет:
Отправить комментарий