Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2015, 19:32   #1
svetik290895
Пользователь
 
Регистрация: 10.05.2015
Сообщений: 12
По умолчанию помогите исправить процедуру Del,в двусвязном списке

Создать двусвязный список целых чисел. Нечетные числа выбрать и создать из них односвязный список типа очередь. Удалить их из двусвязного списка. Результаты отображать на экране.....(Не работает процедура del, не знаю как правильно сделать...помогите пожалуйста...остальное все работает)
Код:
uses crt;
const n=7;
type spisok=^zap;
     zap=record
     inf:integer;
     lev,pr:spisok;
end;
var beg,kon,a,b,c,p,q,t,m:spisok;
    i:integer;
Procedure print;
 begin
  p:=beg^.pr;
   while p^.pr<> nil do
    begin
     write(p^.inf:4);
      p:=p^.pr;
     end;
  end;
Procedure ins_pose;
 begin
  new(beg);
   beg^.inf:=maxint;
    a:=beg;
     new(kon);
      kon^.inf:=-maxint;
       beg^.pr:=kon;
        kon^.lev:=beg;
         kon^.pr:=nil;
          for i:=1 to n do
            begin
             new(c);
              c^.inf:=random(10);
               c^.pr:=kon;
                a^.pr:=c;
                 c^.lev:=a;
                  kon^.lev:=c;
                   a:=c;
             end;
 end;
Procedure N_O;
begin
 new(t);
  m:=t;
   b:=t;
    a:=beg^.pr;
     for i:=1 to n do
      begin
       new(t);
        if a^.inf mod 2<>0 then
         begin
          t^.inf:=a^.inf;
           write(t^.inf);
         end;
          m^.pr:=t;
           a:=a^.pr;
       end;
end;
Procedure Del;
 begin
  a:=beg^.pr;
   for i:=1 to n do
     if a^.inf mod 2<>0 then
      begin
      new(q);
       q:=a;
        a^.lev^.pr:=a^.pr;
         a^.pr^.lev:=a^.lev;
          q^.lev:=nil;
           q^.pr:=nil;
           dispose(q);
       end;
         a:=a^.pr;
 
end;
begin
clrscr;
randomize;
ins_pose;
writeln('dvysvaznii spisok');readln;
Print;
writeln;
writeln('odnosvaz nechetnie');readln;
N_O;writeln;
writeln('ydalenie nechetnih');readln;
Del;writeln;
Print;
end.

Последний раз редактировалось Stilet; 10.05.2015 в 19:41.
svetik290895 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить процедуру "сжатия" исходной последовательности символов (Паскаль). Помогите пожалуйста исправить программу ИриSка-147 Помощь студентам 8 19.01.2015 15:45
Удаление элемента в двусвязном списке (Delphi). tgig Помощь студентам 4 10.10.2013 10:36
Сортировка char в двусвязном списке preanik Помощь студентам 0 12.05.2013 02:18
В двусвязном списке продублировать те элементы, которые меньше следующего, но больше больше предыдущего. gvenog Помощь студентам 0 13.12.2010 21:20
Помогите пожалуйста исправить подправить процедуру (строки) Rumus Помощь студентам 5 02.07.2008 16:50