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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2009, 22:52   #1
knopixx7
Новичок
Джуниор
 
Регистрация: 02.05.2009
Сообщений: 1
Восклицание Помогите дописать курсовой

требуется дописать процедуру сортировки методом пузырька двусвязный список.
Код программы:
program Cursovoi;

uses CRT;

type
plist = ^tlist;
tlist = record
data : integer;
next, prev : plist;
end;
p2list = ^plist;

procedure Display (list : plist);
var
p : plist;
begin
if list = nil then
writeLn ('‘список пуст')
else
begin
p := list;

while p^.prev <> nil do
p := p^.prev;

while p <> nil do
begin
if p = list then
write ('*');
write (p^.data, #32);
p := p^.next
end
end
end;

procedure AddToEnd (list : p2list; d : integer);
var
prior : plist;
begin
prior := nil;

while list^ <> nil do
begin
prior := list^;
list := @list^^.next
end;

New (list^);

with list^^ do
begin
data := d;
next := nil;
prev := prior
end
end;

procedure Add (list : p2list; d : integer);
var
l : plist;
begin
if list^ = nil then
begin
AddToEnd (list, d);
exit
end;

New (l);
l^.data := d;
l^.prev := list^;
l^.next := list^^.next;
(list^)^.next := l
end;

procedure AddToBegin (list : p2list; d : integer);
var
l : plist;
begin
if list^ = nil then
begin
AddToEnd (list, d);
exit
end;
while list^^.prev <> nil do
list := @list^^.prev;
New (l);
l^.data := d;
l^.prev := nil;
l^.next := list^;
list^^.prev := l
end;
procedure SortingList(list : p2list; d : integer);
begin

end;
var
list : plist;
i : integer;
begin
while true do
begin
ClrScr;
writeLn ('1 - добавить в начало ');
writeLn ('2 - добавить в конец');
writeLn ('3 - добавить в текущую позицию');
writeLn ('4 - sortirovka');
writeLn ('5 - exit');
writeLn ('>>>>');
writeln(#10, 'CЇЁб®Є:');
Display (list);
gotoxy (5, 6);
readLn (i);
case i of
1: begin
write ('введите число: ');
readLn (i);
AddToBegin (@list, i);
end;
2: begin
write ('введите число: ');
readLn (i);
AddToEnd (@list, i);
end;
3: begin
write ('‚введите число: ');
readLn (i);
Add (@list, i);
end;
4: ;
5: break;
end
end;
end.
knopixx7 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите дописать ShnapS Паскаль, Turbo Pascal, PascalABC.NET 4 28.05.2008 21:08
Помогите дописать пояснение RECREATOR Помощь студентам 4 10.12.2007 09:07
Помогите дописать Klyan Общие вопросы C/C++ 8 22.06.2007 01:55
Помогите дописать компонент Mickle Компоненты Delphi 0 28.05.2007 19:41