Steklar
Stek cho’qqisi
Stekni grafik shaklda quyidagicha tasvirlash mumkin:
Steklar
Stekning quyi chegarasi
1.Stekka element qo‘shish:
Push(/,S), bu yerda S' - stek identifikatori (nomi), I - qo‘shilayotgan element;
Stek turidagi ma‘lumotlar tuzilmasi ustida quyidagi amallarni bajarish mumkin:
2.Stekdan elementni chiqarib olish:
Pop(I,S);
3.Stekning bo‘shligini aniqlash:
Empty(S);
4.Stekdan elementni o‘qish:
StackTop(I,S).
Paskal tilida bir o‘lchovli massivni qo‘llab stekni tashkil qilishga misol:
type
Stack = Array[1..10] of Integer; {Integer turidagi 10 tagacha elementni joylashtiradigan stek}
var
StackCount: Integer; {stek cho‘qqisi ko‘rsatkichi o‘zgaruvchisi, uning boshlang‘ich qiymati 0 ga teng}
S: Stack; {Stekni e‘lon qilish}
Procedure Push(I: Integer; var S: Stack); {Stekka element qo‘shish}
begin
Inc(StackCount);
S[StackCount]:=I;
end;
Paskal tilida bir o‘lchovli massivni qo‘llab stekni tashkil qilishga misol:
Procedure Pop(var I: Integer; S: Stack); {Stekdan elementni olish}
begin
I:=S[StackCount];
Dec(StackCount);
end;
Function Empty: Boolean; {Stekni bo‘shlikka tekshirish}
begin
If I = 0 then Empty:=True Else Empty:=False;
end;
Yuqorida keltirilgan funktsiyalarning C++ tilidagi ifodasi quyidagicha bo‘ladi:
void Push(int S, int I) //stek cho‘qqisiga element qo‘shish
{
if (S= =max_st) exit(1); stack[S]=I;
C++;
}
void Empty(int S) //ctekning bo‘shligini tekshirish
{
if (S= =0) p=1; else p=0;
}
void Remove(int S)
{
if (S= =0) exit(1);
S--;
}
Do'stlaringiz bilan baham: |