Реализация
Приведем фрагменты программ, решающих первую и третью задачи:
- {- голову списка обрабатываем отдельно -} while (head<>nil)and(head^.znach =0)do begin p:= head; head:= head^.next; dispose(p); end; {- середина и конец списка обрабатываются вместе -} p:= head; while p^.next <> nil do if p^.next^.znach = 0 then begin q:= p^.next; p^.next:= p^.next^.next; dispose(q); end else p:= p^.next;
- p:= head^.next; head^.next:= p^.next; p^.next:= p^.next^.next; head^.next^.next:= p;
Рис. 10.5. Примеры перестройки односвязных списков
1)
Высочайшая вершина азиатской части России (4506 м), находится на Алтае.
2)
Предположим, что в нашем примере каждый пациент приходит со своим креслом - это будет аналогом динамического выделения памяти под переменные.
© 2003-2007 INTUIT.ru. Все права защищены. |