Линейные списки. Стек. Дек. Очередь
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: реферати, сочинение 5 класс
| Добавил(а) на сайт: Губанов.
Предыдущая страница реферата | 16 17 18 19 20 21 22 23 24 25 26 | Следующая страница реферата
New(PointerEndQueue^.Next);
PointerEndQueue := PointerEndQueue^.Next;
PointerEndQueue^.Info := X;
PointerEndQueue^.Next := nil; end; end;
function GetQueue(var PointerBegin: List): Integer; //ф-ия получает элемент из
// очереди и возвращает указатель на начало очереди var rQueue: List;
begin rQueue := PointerBegin; if rQueue nil then //Если очередь не пуста begin
PointerBegin := PointerBegin^.Next;
Result := rQueue^.Info; if rQueue nil then Dispose(rQueue); end else begin
ShowMessage('Очередь пуста');
Form1.Edit3.Text := '';
Form1.Button10.Enabled := False;
Form1.Button11.Enabled := False;
Form1.Button12.Enabled := False;
Form1.Image3.Hide; end;
end;
procedure AddToEndQueue(X: Integer);
var
Info: Integer; rQueue, qQueue: List;
FlagList: Boolean;
begin
FlagList := True; //Для выделения первого элемента qQueue := nil; rQueue := nil; while QueueBegin nil do //Ищем указатель на последний элемент очереди begin
Info := GetQueue(QueueBegin);
AddToQueue(Info, rQueue); //Формируем новую очередь из элементов старой
//очереди, чтобы не потерять ее if FlagList then ///////////////////////////////////// begin // // qQueue := rQueue; // формируем указатель на очередь //
FlagList := False; // // end; // ////////////////////////////////// end;
AddToQueue(X, rQueue); if qQueue nil then QueueBegin := qQueue // определяем указатель на
очередь else QueueBegin := rQueue;
//////////////////////////////////
end;
procedure AddToStack(X: Integer; var PointerStack: List); //Добавить элемент в
//стек (PointerStack - указатель на стек)
var
Stacks: List;
begin if PointerStack = nil then //Если стек пуст, то формируем его begin
New(PointerStack);
PointerStack^.Info := X;
PointerStack^.Next := nil; end else //иначе добавляем элемент begin
New(Stacks);
Stacks^.Info := X;
Stacks^.Next := PointerStack;
PointerStack := Stacks; end; end;
function GetStack(var PointerStack: List): Integer; //ф-ия получает элемент из
// стека и возвращает указатель на стек var rStack: List; begin rStack := PointerStack; if rStack nil then //Если стек еще не пуст begin
PointerStack := PointerStack^.Next;
Result := rStack^.Info; if rStack nil then Dispose(rStack); end else begin
ShowMessage('Стек пуст');
Form1.Button14.Enabled := False;
Form1.Image4.Hide; end; end;
procedure AddToDeck(X: Integer; var PointerDeckBegin, PointerDeckEnd:
ListTwo;
Flag: Integer); //Добавить элемент в дек
//PointerDeckBegin - указатель на начало дека
//PointerDeckEnd - указатель на конец дека
var
Decks: ListTwo;
begin if PointerDeckBegin = nil then //Если дек пуст, то формируем его begin
New(PointerDeckBegin);
PointerDeckBegin^.Info := X;
PointerDeckBegin^.Next := nil;
PointerDeckBegin^.Prev := nil;
PointerDeckEnd := PointerDeckBegin; end else //иначе добавляем элемент begin if Flag = 0 then //добавляем в начало begin
New(Decks);
Decks^.Info := X;
Рекомендуем скачать другие рефераты по теме: гигиена реферат, курсовик.
Категории:
Предыдущая страница реферата | 16 17 18 19 20 21 22 23 24 25 26 | Следующая страница реферата