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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

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

Создать двусвязный список целых чисел. Нечетные числа выбрать и создать из них односвязный список типа очередь. Удалить их из двусвязного списка. Результаты отображать на экране.....(Не работает процедура 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 в 21:03.
svetik290895 вне форума Ответить с цитированием
Старый 10.05.2015, 21:52   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
new(q);
А это зачем в процедуре удаления?
Может стоит сделать отдельно процедуру выборки и отдельно процедуру удаления элементов?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.05.2015, 21:59   #3
svetik290895
Пользователь
 
Регистрация: 10.05.2015
Сообщений: 12
По умолчанию

А как сделать.... Не могу понять...не получается..
svetik290895 вне форума Ответить с цитированием
Старый 10.05.2015, 22:20   #4
svetik290895
Пользователь
 
Регистрация: 10.05.2015
Сообщений: 12
По умолчанию

процедура "Procedure N_O" итак осуществляет поиск нечетных
...
svetik290895 вне форума Ответить с цитированием
Старый 11.05.2015, 00:13   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Очень рекомендую скачать Т.А. Павловскую (см. список литературы).
http://www.programmersforum.ru/showt...?t=8324&page=9
Там есть почти готовые части кода, разобравшись с которыми Вы поймете немного больше ...

Вместе с тем, безобразное использование переменных очень усложняет жизнь желающим помочь Вам: все переменные объявлены как глобальные.
И все же:
Procedure ins_pose - активирует двухсвязный список (как удалось понять). И что там делают переменные beg, c, a?
Код:
...
new(beg);
...
new(c);
...
a:=c;
А вот в Procedure N_O эти переменные используются вновь:
Код:
...
a:=beg^.pr;
...
Так где у Вас указатель на начало сформированного списка и ... ?

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двусвязный список b0006 C# (си шарп) 1 14.11.2014 18:09
Двусвязный список (C++) Ferodot Помощь студентам 0 22.04.2014 22:14
Двусвязный список Даsha Помощь студентам 3 26.06.2011 11:45
Двусвязный список Work Group Паскаль, Turbo Pascal, PascalABC.NET 12 13.07.2010 01:44
двусвязный список на си++ mizantrop32 Общие вопросы C/C++ 0 18.05.2010 17:45