Yazılım

Yığıt (Stack) Yapısı – C Programlama Dili

Yığıt (Stack) Yapısı – C Programlama Dili

 

Bilgisayar bilimindeki en kullanışlı kavramlardan biri yığıt veri yapısıdır. Dizideki eleman sayısı ne olursa olsun herhangi bir elemana ulaşmanın algoritma karmaşıklığı O(1)’dir. Fakat birçok problemin doğası, elemanlarına sadece bir noktadan ve belirli bir sıraya göre erişimi gerektirebilir. Bu tür uygulamalarda dizilerde olduğu gibi herhangi bir elemana istediğimiz anda ulaşmamız mümkün değildir. Ayrıca yeni bir eleman eklemek istediğimizde de bunu herhangi bir yere yerleştiremeyiz.

Bir kamyona yüklenen kutuların indirilmesi sırasında uyulması gereken bir sıra vardır. Bir halk otobüsü bir noktadan diğer noktaya seferinden sonra, geri dönüşünde gerçekleştireceği izlemede hangi duraklara uğrayacağı bellidir.

Eleman ekleme ve çıkarma işlemlerinin bir dizinin sadece bir ucundan yapılabildiği veri saklama sistemlerine yığıt (stack) denir. Yığıt veri yapısı, SON GİREN DATA – İLK ÇIKAN DATA OLUR (Last – In – First – Out (LIFO)) kuralıyla erişimin yapıldığı, ara elemanlarına erişilemeyen bir veri yapısıdır. Elemanın eklendiği ve çıkarıldığı noktaya yığıtın tepesi, ilk elemanın eklendiği en derin noktaya ise yığıtın tabanı denir.

Yığıt ve Temel İşlemlerinin Programlanması

Yığıt Oluşturma C Kodu

struct yığıt

{

int indis;

int elemanlar[yığıt_boyutu];

};

struct yığıt x;

Yığıtın Boş Olması Kontrolü C Kodu

boolean stack_empty(struct yığıt *ps)

{

if (ps -> indis == -1)

return true;

else

return false;

}

Yığıtın Dolu Olması Kontrolü C Kodu

boolean stack_full(struct yığıt *ps) {

if (ps -> top == yığıt_boyutu – 1)

return true;

else

return false;

}

Yığıta Eleman Ekleme C Kodu

void push(struct yığıt *ps, int x) {

if (stack_full(ps)) {

printf(“STACK DOLU!”);

exit(1);

}

else

ps -> elemanlar[++(ps -> indis)]= x;

}

Yığıttan Eleman Çıkarma C Kodu

void pop(struct yığıt *ps) {

if (stack_empty(ps)) {

printf(“STACK BOŞ!”);

exit(1);

}

else

ps -> elemanlar[(ps -> indis)–];

}

İlgili Makaleler

Başa dön tuşu
fortune coinsfortune coins casinoslotomaniasupertotobet canli bahisonwin üyelikonwin güncel adresonwin mobilcasibom üyelikcasibom giriş linkijackpot partyscrooge slotonwinonwin giriştempobetSpree Casinoluckybird casinoyeni siteleryer alır www.theirishpubfl.comhttps://beverlywoodbakery.com/ deneme bonusuhouse of funhouse of fun slots casinoreal prizereal prize casinojefebetyay casino no deposit bonusspree casino logingrandpashabetgrandpashabetgrandpashabetcratosroyalbetgrandpashabetbetwoonjefebetjefebet comsweeps coins casinofree sc coins casinoataköy escortgrandpashabetbets10holiganbet girişjustin tvmagical spintortuga casinoamon casinocasibomYeni casino siteleriBonus veren casinolarleonbet girişcasibom girisibetmatikbetmatik girişpizzeriaalgolosone.comballettea tropazhacklinkonwinonwin girişgrandpashabettümbetdeneme bonusu veren sitelerJojobetbeylikdüzü escortcasibomcasibom girişBahçelievler escortcasibomcasibom güncel girişcasibom girişdeneme bonusu veren sitelerholiganbeturl shortenerbetturkeySekabetcasibom girişsahabetbetkanyonbetparkbetturkeycratosslotdinamobetdumanbetdumanbetkralbetkulisbetmeritkingnakitbahisotobettrendbetbetciocasibomcasibom girişpadişahbetbetciocasibomselçuksportsholiganbethttps://www.gvscolombia.com/ultrabetbetkanyonimajbethttps://www.myenglish.com.sg/grandpashabet girişgrandpashabetbets10casibomgrandpashabetcasivalcasibomextrabetpadişahbetmaldives betcasibom güncel girişCasibommarsbahis girişcasibom girişbahiscasinoTrbettrbet giriştrbet girişcasibom887holiganbetholiganbetholiganbetjojobetcasibomPusulabetcasibomjojobetextrabetmatbetextrabet girişbetturkeymarsbahissahabetbetistGrandpashabetcasibomGrandpashabetbetciograndpashabetİstanbul Escortgrandpashabethttps://www.gvscolombia.com/betebetimajbetdeneme bonusu veren sitelerkingroyalBoyabat Emlakjojobetjojobet girişsahabetgalabetmrbahiscasibommarsbahisholiganbetzbahissahabetsekabetrestbetpinbahisonwinmobilbahismeritbetmavibetholiganbetmatbetmatadorbettrbettrbet girişbankobet girişjojobet güncel girişGrandpashabetbetciorestbetcasibomartemisbetgrandpashabetmatadorbetmaltcasinoholiganbetmarsbahisonwinsahabetsekabetmatbetimajbetmaltcasinobetzulacanlı bahispusulabetjojobet güncel girişcasibom girişbetsatcasibomcasibom girişcasibom girişcasibom güncel girişbets10casibomcasibom girişCasibomtarafbetasyabahispusulabetodeonbettempobetkalebetsafirbetmariobetmarsbahisonwinstarzbetcasibomcasibomdeneme bonusu veren sitelerbetebet güncel giriş7slotscoinbarKralbetcasibom girişmarsbahisimajbet, imajbet güncel girişmatbet, matbet girişjojobet, jojobet girişholiganbet,holiganbet giriş,holiganbet güncel giriş,holiganbet resmi girişmatbetimajbet,imajbet giriş,imajbet güncel giriş,imajbet resmi girişmarsbahis,marsbahis giriş,marsbahis güncel giriş,marsbahis resmi girişgrandpashabetbets10jojobetkingroyalmeritbetonwinsekabetmatbetjojobetkingroyalmavibetbetebethttps://escortbayanpendik.com/Kategori/sultanbeyli-escort/48https://matbettr.com/