Страница 1 из 1

Курсовик по паскалю (Выручайте)

Добавлено: 15 дек 2009, 23:31
romsay
Ребят помогите с курсовиком по спискам. Ну нисколечка их не знаю.
До Нового Года надо сдать 3 курсовика 2 по паскалю и 1 по бейсику.
2 делаю довольно таки просто, но с одним реальная запара и не остается времени все это учить с 0.
Вообщем задание такое:
Реализовать алгоритм создания и удаления кольцевого линейного списка.
Вот принципе что тут нужно сделать:
Модули для работы с динамическими списками: однонаправленный, двунаправленный, однонаправленный кольцевой, двунаправленный кольцевой. Реализованы процедуры 0. Создание пустого списка 1. Добавление элемента в начало списка 2. Добавление элемента в конец списка 3. Вставка элемента в список 4. Удаление элемента из начала списка 5. Удаление элемента из конца списка 6. Удаление элемента списка с заданным номером 7. Печать списка 8. Сортировка списка.

Вся надежда на вас. Не сдам этот курсовик не допуск к сесии =//

Re: Курсовик по паскалю (Выручайте)

Добавлено: 16 дек 2009, 08:06
1nclude
Паскаль не знаю, но у себя нашёл следующее:

Линейный список.

Реализованные методы:

а) добавление элемента в список;
б) «перемотка» списка на n позиций;
в) удаление n-го элемента;
г) взятие n-го элемента;
д) создание нового списка;
е) поиск позиции элемента;
ж) взятие следующего элемента и др.

Исходник в архиве, только я глянул там ни коментариев ни разбора полётов.

Re: Курсовик по паскалю (Выручайте)

Добавлено: 17 дек 2009, 05:42
dr.Jekill
Вот тебе еще сортировка:
[syntax="pascal"]
type pitem=^item;
item=record
data:integer;
next :p item;
end;
...
function Sort(head :p item) :p item;
var newh,max,prev,pmax,cur :p item;
begin
newh:=nil;
while head<>nil do
begin
max:=head;
prev:=head;
cur:=head^.next;
while cur<>nil do
begin
if cur^.data>max^.data then
begin
max:=cur;
pmax:=prev;
end;
prev:=cur;
cur:=cur^.next;
end;
if max=head then head:=head^.next
else pmax^.next:=max^.next;
max^.next:=newh; newh:=max;
end;
Sort:=newh;
end;
[/syntax]