Вопрос № 85579: Здравствуйте!
Помогите с написанием процедуры удаления k элементов списка, начиная с номера n. Пытался рисовать схему, все равно запутался в указателях :-(
Пояснения необязательны: алгоритм хорошо представляю, синтаксис знаю.
Заранее...
Вопрос № 85.579
Здравствуйте!
Помогите с написанием процедуры удаления k элементов списка, начиная с номера n. Пытался рисовать схему, все равно запутался в указателях :-(
Пояснения необязательны: алгоритм хорошо представляю, синтаксис знаю.
Заранее благодарен.
Приложение:
Отправлен: 05.05.2007, 15:53
Вопрос задал: Dmitrij (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Устинов С.Е.
Здравствуйте, Dmitrij!
Вот примерная процедура: (буду считать, что удаляем начиная с n-го элемента включительно).
procedure delete(list:tLink;n,k:integer);
var t,p,g: tLink;
i:integer;
begin
g:=list;
for i:=2 to n-1 do g:=g^.next;
t:=g^.next;
for i:=1 to k do
begin
p:=t^.next;
dispose(t);
t:=p;
end;
g^.next:=p;
end;
Только я не делал проверки на существование этих элементов, на достижение конца списка, будем считать, что для данного списка можно проделать эту операцию.