Mavzu: Ma’lumotlarning yarim statik tuzilmalari Ma’ruza rejasi


Download 146.57 Kb.
bet3/6
Sana24.09.2023
Hajmi146.57 Kb.
#1687351
1   2   3   4   5   6
Bog'liq
Ma\'ruza

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--;
}

Download 146.57 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling