Линейные списки. Стек. Дек. Очередь
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: реферати, сочинение 5 класс
| Добавил(а) на сайт: Губанов.
Предыдущая страница реферата | 17 18 19 20 21 22 23 24 25 26 27 | Следующая страница реферата
Decks^.Next := PointerDeckBegin;
Decks^.Prev := nil;
PointerDeckBegin^.Prev := Decks;
PointerDeckBegin := Decks; end else //добавлям в конец begin
New(Decks);
Decks^.Info := X;
Decks^.Next := nil;
Decks^.Prev := PointerDeckEnd;
PointerDeckEnd^.Next := Decks;
PointerDeckEnd := Decks; end; end; end;
function GetDeckBegin(var PointerDeckBegin: ListTwo): Integer;
//ф-ия получает элемент из начала дека и возвращает указатель на начало дека. var q: ListTwo; begin if PointerDeckBegin nil then //Если дек не пуст begin
Result := PointerDeckBegin^.Info; q := PointerDeckBegin;
PointerDeckBegin := q^.Next; if PointerDeckBegin nil then PointerDeckBegin^.Prev := nil; if q nil then Dispose(q); end else begin
ShowMessage('Дек пуст');
Form1.Edit5.Text := '';
Form1.Button18.Enabled := False;
Form1.Button19.Enabled := False;
Form1.Button20.Enabled := False;
Form1.Image5.Hide;
Form1.Image6.Hide; end; end;
function GetDeckEnd(var PointerDeckEnd: ListTwo): Integer;
//ф-ия получает элемент из конца дека и возвращает указатель на конец дека. var q: ListTwo; begin if PointerDeckEnd nil then //Если дек не пуст begin
Result := PointerDeckEnd^.Info; q := PointerDeckEnd;
PointerDeckEnd := q^.Prev; if PointerDeckEnd nil then PointerDeckEnd^.Next := nil; if q nil then Dispose(q); end else begin
ShowMessage('Дек пуст');
Form1.Edit5.Text := '';
Form1.Button18.Enabled := False;
Form1.Button19.Enabled := False;
Form1.Button20.Enabled := False;
Form1.Image5.Hide;
Form1.Image6.Hide; end; end;
procedure CreateLists; //процедура создания всех списков
var i: Integer;
X: Integer;
Uk, q: List;
UkTwo, qTwo: ListTwo;
UkQueue, qQueue: List; qStack: List; qDeckBegin, qDeckEnd: ListTwo;
begin
X := Random(101); //Определяем значение первого элемента
Uk := nil; ////////////////////////// q := nil; // //
UkTwo := nil; // НАЧАЛЬНЫЕ УСТАНОВКИ: // qTwo := nil; // //
UkQueue := nil; // все указатели = nil // qQueue := nil; // // qStack := nil; // // qDeckBegin := nil; // // qDeckEnd := nil; //////////////////////////
// Destroy for every lists if ListBegin nil then DestroyList(ListBegin); if ListTwoBegin nil then DestroyListTwo(ListTwoBegin); if QueueBegin nil then DestroyList(QueueBegin); if Stack nil then DestroyList(Stack); if DeckBegin nil then DestroyListTwo(DeckBegin); if RoundList nil then DestroyRoundList(RoundList);
AddToList(X, Uk); //
AddToListTwo(X, UkTwo); // Добавляем Х в
AddToQueue(X, UkQueue); // каждый список
AddToStack(X, qStack); //
AddToDeck(X, qDeckBegin, qDeckEnd, 0); //
AddToRoundList(X, RoundList); ///////////////////
Unit1.Form1.Edit6.Text := IntToStr(X); q := Uk; //
[pic]qTwo := UkTwo; // Формируем указатели на начало списков qQueue := UkQueue; // for i := to 9 do //Дальнейшее формирование списков begin
X := Random(101);
AddToList(X, q);
AddToListTwo(X, qTwo);
AddToQueue(X, qQueue);
AddToStack(X, qStack);
AddToDeck(X, qDeckBegin, qDeckEnd, 0);
AddToRoundList(X, RoundList);
Unit1.Form1.Edit6.Text := Unit1.Form1.Edit6.Text + ' ' + IntToStr(X); end;
ListBegin := Uk; //////////////////////////////////////
ListTwoBegin := UkTwo; // //
QueueBegin := UkQueue; // //
Stack := qStack; // Определяем указатели все списки //
DeckBegin := qDeckBegin; // //
DeckEnd := qDeckEnd; // //
RoundList := RoundList^.Next //////////////////////////////////
end;
end.
unit Unit16; //Тест
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm16 = class(TForm)
Memo1: TMemo;
Panel1: TPanel;
Рекомендуем скачать другие рефераты по теме: гигиена реферат, курсовик.
Категории:
Предыдущая страница реферата | 17 18 19 20 21 22 23 24 25 26 27 | Следующая страница реферата