Mavzu: Steklar va navbatlar. Ularni mantiqiy tasvirlash va ustida amal bajarish algoritmlari. Stek va navbatni bog‘langan ro‘yxat ko‘rinishida tasvirlash


Yarimstatik ma’lumotlar tuzilmasi


Download 446.63 Kb.
bet2/4
Sana30.04.2023
Hajmi446.63 Kb.
#1408298
1   2   3   4
Bog'liq
STEK va NAVBAT

Yarimstatik ma’lumotlar tuzilmasi

Yarimstatik tuzilma nima???

Nima sababdan yarimstatik tuzilma deyiladi???

Bunday tuzilma uzunliklari oldindan beriladi (statiklik sharti), lekin tuzilmani tashkil etuvchi elementlar soni dastur bajarilishi mobaynida vaqtga va ro‘yxat uzunligiga bog‘liq ravishda o‘zgarib turishi mumkin (dinamiklik sharti).

Faraz qilaylik, stek, dek va navbatlar dasturda massiv ko‘rinishida ifodalangan bo‘lsin.

U holda mazkur ma’lumotlar tuzilmasi yarimstatik ma’lumotlar tuzilmasiga misol bo‘ladi.

 Stekdagi asosiy amallar

Faraz qilaylik, stek bir o‘lchamli massiv ko‘rinishida ifodalangan bo‘lib, uning uzunligi max_st ga teng bo‘lsin, ya’ni stack[max_st]. Bu erda tstek uchi, x esa BT turga tegishli element.


void Empty(int t)
{
if (t= =0) p=1;
else p=2;
}
void Push(int t, BT x)
{
if (t= =max_st) exit(1);
stack[t]=x;
t++;
}
void Remove(int t)
{
if (t= =0) exit(1);
t--;
return stack[t];
}
void Full(int t)
{
if (t= =max_st) p=1;
else p=2;
}

Navbatdagi asosiy amallar

Faraz qilaylik, navbat bir o‘lchamli massiv ko‘rinishida ifodalangan bo‘lib, uning uzunligi max_q ga teng bo‘lsin, ya’ni queue[max_q]. Bu erda first –navbat boshi, last- navbat oxiri, x esa BT turga tegishli element.


void Empty(int first, last)
{
if (first= =last) p=1;
else p=2;
}
void Insert(int last, BT x)
{
if (last= =max_q) exit(1);
queue[last]=x;
last++;
}
void Remove(int first, last)
{
if (first= =last) exit(1);
first++;
}
void Full(int last)
{
if (last= =max_q) p=1;
else p=2;
}

Download 446.63 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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