10-ma’ruza: navbat tuzilmalari: stek, navbat va dek reja


void Push (Stack &S, char x) {


Download 126.31 Kb.
bet6/11
Sana11.11.2021
Hajmi126.31 Kb.
#173577
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
10-hafta maruza

void Push (Stack &S, char x) {

PNode NewNode;

NewNode = new Node;// yangi tugun hosil qilish

NewNode->data = x;//tugunga ma’lumot kiritish

NewNode->next = S.Head;

NewNode->prev = NULL;

if (S.Head) // ro’yxat boshidan qo’shish

S.Head->prev = NewNode;

S.Head = NewNode;

if (!S.Tail) S.Tail = S.Head;

}



Stekning cho’qqisidan elementni olish. Pop funktsiyasi yuqoridagi elementni o’chiradi va uning qiymatini qaytaradi.

char Pop (Stack &S){

PNode TopNode = S.Head;

char x;

if (!TopNode )// agar stek bo’sh bo’lsa, u holda

return char(255);//255 kodi bilan belgi qaytarish

x = TopNode->data;

S.Head = TopNode->next;

if (S.Head) S.Head->prev=NULL;

 else S.Tail = NULL;



delete TopNode; // xotirani tozalash

return x;

}



Dasturda tizimli stek. Dastur bajarilishi vaqtida dastur steki uchun aniq xotira sohasi bo’shatiladi. Bundan tashqari protsessorda stek cho’qqisi adresi saqlanadigan maxsus yacheyka (registr) mavjud. Dastur stekni quyidagilarni saqlash uchun ishlatadi:

1)      protsedura va funktsiyalardan qaytish adreslarini (bu adreslar protsedura yoki funktsiyalar o’z ishni yakunlagandan keyin dasturga qaytishni ta’minlaydi);

2)       protsedura va funktsiyalarga taqdim etiladigan parametrlarni;

3)       protsedura va funktsiyalarning lokal o’zgaruvchilarini;

4)       vaqtincha ma’lumotlarni (assemblerda yozilgan dasturlarda).

Hammasidan ham ko’proq stekda lokal o’zgaruvchilar saqlanadi. Shuning uchun ham katta massivlar uchun dinamik xotira ajratiladi. Bundan tashqari, iloji boricha protseduralarga katta hajmli tuzilmalarni taqdim etmaslik kerak, buning o’rniga ularning adresi yoki ularga ko’rsatkichlarni berish zarur (buning uchun parametr nomi oldidan & belgisini qo’yish zarur bo’ladi). 




Download 126.31 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




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