Przejdź do zawartości

Struktury danych/Implementacje w Pascalu/Stosy

Z Wikibooks, biblioteki wolnych podręczników.
const 
	StosMax = 10; //Stos 10 elementowy
	
var
	stos : array[1..StosMax] of integer;
	szczyt : integer = 0; 
	
procedure push(element : integer);
begin
	if szczyt < StosMax then
		begin
			//wrzuć na stos
                        Inc(szczyt);
			stos[szczyt] := element;
		end
	else
		begin
			writeln('Stos jest pelny'); //Stos jest pełny
		end;
end;
	
function pop : integer;
begin
	if szczyt <> 0 then 
		begin
			//zdejmij ze stosu
			pop := stos[szczyt];
                        Dec(szczyt);
		end
	else
		begin
			writeln('Nie ma juz nic na stosie'); //Stos jest pusty
                        pop := -1; //-1 lub inna wartość kontrolna (wartownik) który poinformuje o 
                        //pustym stosie (najlepiej wybrać wartość którą będzie unikalna dla końca 
                        //stosu, tzn żaden inny element na stosie nie będzie mógł jej osiągnąć)                  
		end;
end;