Помощь - Поиск - Пользователи - Календарь
Полная версия: Структуры со ссылками на себя
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
lvi
Помогите пожалуйста разобраться с задачей: " Дан указатель PC на один из элементов непустого двусвязного списка. Переместить данный элемент в начало списка и вывести указатели Р1 и Р2 на начало и конец преобразованного списка. Операции выделения и освобождения памяти не использовать, поля data не изменять. "
как заполнить элементами структуру без выделения им памяти
volvo
Цитата
как заполнить элементами структуру без выделения им памяти
Речь в задании не об этом. А о том, что тебе нужно от заданного указателя пробежать к началу списка (чтобы получить указатель на его начало), и поменять указатели так, чтобы первый элемент списка и тот элемент, на который указывал PC "поменялись местами" (но при этом не менять поле data, а менять только значения указателей)...

Что-то вот такое (p - вспомогательная переменная, first - указатель на начало списка, pc - заданный тебе указатель):

p = first -> next;
first -> next = pc -> next;
if(pc->next) pc -> next -> prev = first;

if(pc -> prev) pc -> prev -> next = first;
first -> prev = pc -> prev;
pc -> prev - NULL;

p -> prev = pc;
(начерти схему, куда что указывает, и проследи, что получится в результате выполнения этого алгоритма)...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.