Помогите решить задачку! Дан двусвязный список и указатель Р0 на один из его элементов, переместить P0 на К(>0) позиций назад(т.е. через К элементов). Если К больше числа элементов списка, стоящих перед Р0 то переместить в начало дв. списка. Операции выделения, освобождения памяти не использовать.
volvo
23.12.2005 15:34
... k := 20; move_to := p;
while (move_to <> nil) and (k > 0) do begin move_to := move_to^.prev; dec(k); end;
if p^.prev <> nil then p^.prev^.next := p^.next; if p^.next <> nil then p^.next^.prev := p^.prev;
if move_to = nil then begin move_to := first; first := p end; if move_to^.prev <> nil then move_to^.prev^.next := p; p^.prev := move_to^.prev;
if move_to^.next <> nil then move_to^.next^.prev := p; p^.next := move_to; ...
Гость
24.12.2005 12:36
спасибо
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.