2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 динамические структуры,двусвязные списки
Сообщение13.12.2011, 23:00 


13/10/11
32
Добрый вечер!
Помогите пожалуйста с задачей,правильно ли понимаю или нет?
Задача: Описать подпрограмму удаления одного или нескольких элементов
двусвязного линейного списка-Удалить из списка все элементы со значением, меньшим заданного
значения
делаю так:
Код:
Procedure Del_V(var first,last:link);
Var p,q:link;
    n,a:integer;
Begin
  if first=nil then
    writeln('Список пуст')
  else
  begin
    write('Введите эл-т, который надо сравнить: ');
    readln(a);
    writeln;
    n:=0;
    p:=first;
    while (p<>nil)or(first<>nil) do
    begin
      if (p^.inf<a)and(p=first)then//удаление первого
      begin
        if p^.next<>nil then//удаление первого если несколько
        begin
          first:=p^.next;
          first^.prev:=nil;
          q:=p;
          p:=p^.next;
          dispose(q);
          n:=n+1;
        end
        else//удаление первого если один
        begin
          first:=nil;
          dispose(p);
          n:=n+1;
        end;
      end
      else
        if (p^.inf<a)and(p=last)then//удаление последнего
        begin
          last:=p^.prev;
          last^.next:=nil;
          dispose(p);
          n:=n+1;
        end
        else
          if p^.inf<a then
          begin
            p^.prev^.next:=p^.next;
            p^.next^.prev:=p^.prev;
            q:=p;
            p:=p^.next;
            dispose(q);
            n:=n+1;
          end
          else
            p:=p^.next;
    end;
    if n<>0 then
      writeln('Кол-во удаленых эл-ов: ',n)
    else
      writeln('В списке нет эл-ов меньше заданого значения')
  end;
end;



Среда разработки: PascalABC

-- 13.12.2011, 23:17 --

спасибо,разобрался сам.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group