Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project1;
- uses
- crt, DOS;
- type
- listPtr = ^list;
- list = record
- next: listPtr;
- previous: listPtr;
- x: String;
- end;
- procedure push(var listStart: listPtr; var listEnd: listPtr);
- var
- newElement: listPtr;
- begin
- clrScr;
- if listEnd = NIL then
- begin
- newElement := listStart;
- new(newElement);
- writeLn('Wprowadz element stosu: ');
- readLn(newElement^.x);
- newElement^.next := NIL;
- newElement^.previous := NIL;
- listEnd := newElement;
- listStart := newElement;
- end else
- begin
- newElement := listEnd;
- New(newElement^.next);
- newElement := newElement^.next;
- writeLn('Wprowadz element stosu: ');
- readLn(newElement^.x);
- newElement^.next := NIL;
- newElement^.previous := listEnd;
- listEnd := newElement;
- end;
- end;
- procedure pop(var listStart: listPtr; var listEnd: listPtr);
- var
- pointer: listPtr;
- begin
- if listStart = NIL then
- begin
- clrScr;
- writeLn('Nie moge usunac - stos pusty!');
- writeLn;
- writeLn('Nacisnij dowolny klawisz, aby powrocic do menu...');
- ReadKey;
- end;
- if listStart^.next = NIL then
- begin
- pointer := listStart;
- dispose(pointer);
- listStart := NIL;
- listEnd := NIL;
- end else
- begin
- pointer := listEnd;
- listEnd := pointer^.previous;
- listEnd^.next := NIL;
- dispose(pointer);
- end;
- end;
- procedure isEmpty(var listStart: listPtr);
- var
- pointer: listPtr;
- begin
- clrScr;
- if listStart = NIL then
- begin
- WriteLn('Stos pusty!');
- end else
- begin
- writeLn('Stos NIE jest pusty!');
- end;
- writeLn;
- writeLn('Nacisnij dowolny klawisz, aby powrocic do menu...');
- ReadKey;
- end;
- procedure listShow(var listStart: listPtr);
- var
- pointer: listPtr;
- begin
- clrScr;
- pointer := listStart;
- if pointer = NIL then
- begin
- writeLn('Lista pusta!');
- end else
- begin
- writeLn('Element: ', pointer^.x);
- while pointer^.next <> NIL do
- begin
- writeLn;
- pointer := pointer^.next;
- writeLn('Element: ', pointer^.x);
- end;
- end;
- writeLn;
- writeLn('Nacisnij dowolny klawisz, aby powrocic do menu...');
- ReadKey;
- end;
- var
- listStart, listEnd, pointer: listPtr;
- choice: String;
- begin
- listEnd:= NIL;
- listStart := NIL;
- while true do
- begin
- clrScr;
- WriteLn('1. Dodaj element do stosu');
- WriteLn('2. Usun element ze stosu');
- WriteLn('3. Sprawdz czy stos jest pusty');
- WriteLn('4. Wyswietl zawartosc stosu');
- WriteLn('0. Wyjscie');
- ReadLn(choice);
- case choice of
- '1': push(listStart, listEnd);
- '2': pop(listStart, listEnd);
- '3': isEmpty(listStart);
- '4': listShow(listStart);
- '0': break;
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement