Stek (inglizcha stack stek; stek o'qiladi) bu lifo tamoyili bo'yicha tashkil etilgan elementlarning ro'yxati bo'lgan mavhum ma'lumotlar turi


Download 39.61 Kb.
bet1/4
Sana02.01.2022
Hajmi39.61 Kb.
#190899
  1   2   3   4
Bog'liq
Стеки в с узб


Stek (inglizcha stack - stek; stek o'qiladi) - bu LIFO tamoyili bo'yicha tashkil etilgan elementlarning ro'yxati bo'lgan mavhum ma'lumotlar turi (inglizcha oxirgi - birinchi chiqdi, "oxirgi - birinchi tashqariga chiqdi").

Ko'pincha stackning printsipi plitalar to'plami bilan taqqoslanadi: ikkinchisini tepadan olish uchun tepasini olib tashlash kerak.

1946 yilda Alan Turing stek tushunchasini kiritdi [1] [2]. Va 1957 yilda nemislar Klaus Samelson va Fridrix L. Bauer Tyuring g'oyasini patentlashdi [3].

Ba'zi tillarda (masalan, Lisp, Python [4]) har qanday ro'yxatni stek deb atash mumkin, chunki ular uchun pop va push operatsiyalari mavjud. C ++ tilida standart kutubxonada amalga oshirilgan tuzilma va usullarga ega bo'lgan sinf mavjud [5]. Va hokazo.

Ko'pincha stek bir yo'nalishli ro'yxat sifatida amalga oshiriladi (ro'yxatdagi har bir element, stakda saqlangan ma'lumotlarga qo'shimcha ravishda, stekdagi keyingi elementga ko'rsatgichni o'z ichiga oladi).

Ammo ko'pincha stack buyurtma qilingan manzillarga ega bo'lgan bir o'lchovli qatorda joylashgan. Bunday stek tashkiloti, agar ma'lumot elementi xotirada doimiy so'zlarni, masalan, 1 so'zni egallasa, qulaydir. Bu stack elementidagi keyingi stack elementiga aniq ko'rsatgichni saqlash zaruratini yo'q qiladi, bu esa xotirani tejash imkonini beradi. Bunday holda, stek ko'rsatkichi (Stack Pointer, - SP) odatda protsessor registri bo'lib, stack boshining manziliga ishora qiladi.

Masalan, stekning boshi pastroq manzilda joylashgan bo'lsa, quyidagi elementlar o'sib boruvchi manzillarda joylashgan deb taxmin qiling. Har safar so'zni stekka itarish paytida SP avval 1 ga kamayadi va keyin SP manzilidagi xotiraga yoziladi. Har safar so'zlar to'plamdan chiqarilganda (qo'yiladi), avval SP dan joriy manzilni o'qiydi va keyin SP tarkibini 1 ga oshiradi.

Stekni bir yo'nalishli ro'yxat sifatida tashkil qilishda stack o'zgaruvchisi qiymati uning tepasiga ko'rsatuvchi - tepaning manzili bo'ladi. Agar stek bo'sh bo'lsa, u holda ko'rsatkich qiymati NULL bo'ladi.

C-da stack dasturining misoli:


Download 39.61 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4




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