Merhaba arkadaslar bugun kisaca LIFO (last in - first out) Mantigini ve aciklamali olarak kodu ekliyecem kisa olarak.. ufakta bir anlatim ekliyecem icerisine.. gitikce konulari karisik ve ve agirlik olarak ve en cok ogrenirken zorlu olan mantigini ogrenirken zorlanilan kodlari ekliyecem.. buda onlardan bir tanesinidir..

LIFO NEDIR ?
KISACA BIR MESELA BOZULMAYAN URUNLER ICIN. FABRIKALARDA MESELA. CEKIC ICIN .. MESELA MANTIGI ANLATIYIM.. ORNEKTIR

10 TANE RENKLI CEKIC VARDIR VE SIRA SIRA KUTUYA DIZERSIN.. TABI HEPSI NUMARALI SIRA SIRA.. KUTUDAN GERI CIKARDIGINDA.. MANTIK SUDUR (LAST IN - FIRST OUT) TURKCESI (SON GIREN ILK CIKAR) ORNEGIMDENDE ANLATIGIM GIBI.. BASIT OLMASADA ANLAYINCA.. KOLAY OLACAKTIR.. STACK EKLEME CIKARMA .. VE ALGORITMA UZERINDE..BURADA TEK DEGISKEN UZERINDEN ANLATMAYA CALISTIK...


DAHA ONCEDE ACIKLADIM HEADER NEDIR NASIL OLUSTURLUR.. OYUZDEN BURADA 2 CPP 1 ADET HEADER OLUSTURUCAZ 3 AYRI CODE SAYFASI MANTIGINDA EKLIYECEM (BUYUK PROGRAM MANTIGINDA YANE).




BU HEADER FILEMIZ
Kod:
#ifndef LIFO_H_ #define LIFO_H_ typedef unsigned long Item; class Stack ; // BURADA ASLINDA ENUMUN KULLANIM AMACI DIZININ ELEMAN SIRINI KOYMAK ICIN... (IDEX) ICIN.. Item items[MAX]; int top; // BU DEGISKEN SAYESINDE STACTAKI.. YUKLEME CIKARMA OLAYINI GERCEKLESTIRECEZ... public: Stack(); // CONSTRUCTURUMUZ... bool isempty() const; // GERI DONUS TIPLERIMIZ HEP TRUE VE FALSE OLACAGI ICIN... BOOL KULLANACAGIZ.. VE BOS KONTROLU ETME.. bool isfull()const; // DOLU KONTROL ETME.. bool push(const Item & item); // ELEMAN EKLEME... bool pop(Item & item); // STACK EN SONUNCU ELEMENINI SILMEK ICIN.. }; #endif



BU CPP METOTLARIMIZ..
Kod:
#include "stdafx.h" #include #include "LIFO.H" // HEADER ISIMINI YUKARDAKI HEADERDAN DEGISTIREBILIRSINIZ KENDINIZE GORE.. BURADA METOTLARI KULLANMAK ICIN 2 CI CPPYE METOTLARIN ATAMALARINI VE FUCTION ISLEMLERINI YAPTIK... using namespace std; Stack::Stack() // CONSTRUCTURUMUZA YANE BASLANGICTA NESNEYE ATANACAK.. DEGER SADECE BIR DEGISKEN DEGERI VAR ONADA 0 ATANACAK... bool Stack::isempty()const // BURADA KONTROL YAPILIYOR.. STACK YANE (DEPOMUZ) BOSMU...BOS ISE TRUE RETURN EDIOR YANLIS ISE FALSE RETURN EDIYOR... bool Stack::isfull()const // BURADA INDEX UZUNLUGU KADAR GIREBILICEGIMIZ ICIN STACKA FULL ISE TRUE DEGIL ISE FALSE RETURN EDIYOR.. bool Stack:ush(const Item & item) // BURADA STACKA EKLEME YAPILIYOR.. INDEXSI KONTROL EDEREK.ONA GORE IF SARTI DOGRUYSA YANE EKLEME YAPILDIYSA TRUE RETURN EDIYOR DEGILSE ELSE GECIS YAPIP FALSE RETURN EDILIYOR.. else return false; } bool Stack:op(Item & item) // BURADA ISE CIKARMA ISLEMI YAPILIYOR.. DIZIDEKI EN SON.. DEGERI POSTA SAYESINDE BI NEVI (POINTER DAHA SONRA ANLATACAGIM..) TEK TEK DIZIDEN CIKARIP ATIYOR.. FAKAT MANTIK.. 1 DEGISKEN UZERINDE.. YANE DIZI YUKARI ASAGI CIKIYOR ASANSOR GIBI..INDEXTE KALIYOR DEGERLER.. FAKAT 1-10 KADAR INIP CIKIYOR.. LIFO MANTIGI BU.. BURADAD IF SARTI DOGRUYSA TRUE DEGILSE FALSE RETURN EDIYOR.. else return false; }

__________________