Dizi ile Yığın Tasarımı

Forum Sayfası

Dizi ile yığın tasarımı

Çalışma Mantığı:

ekleme: Öncelikle diziye ekleyecek yer var mı diye bakılır. Ekleyecek yer olup olmadığı Yığın işaretçisi kontrol edilerek anlaşılır. Yığın işaretçisi eğer dizinin büyüklüğü kadar yada daha fazla ise dizi dolmuştur.

Dizi dolmamış ise yığın işaretçisinin gösterdiği yere değer yazılır. işaretçinin değeri bir artırılarak bir sonraki hücreyi göstermesi sağlanır.

alma: değer alınabilmesi için öncelikle dizi boşmu diye kontrol edilir. Eğer dizi boşsa değer alınamaz diye mesaj verilir. dizinin boş olup olmadığı Yığın işaretçisinin değeri kontrol edilerek anlaşılır. Yığın işaretçisi sıfır yada sıfırdan daha küçük ise dizi boştur.

Yığın boş değilse, değer alınabilir demektir. Yığın işaretçisinin değeri bir düşürülür. Gösterdiği hücrenin değeri okunur.

Özet: Yığın işaretçisinin gösterdiği yere değer konur. Değer alınmak istendiğinde yığın işaretçisinin gösterdiği yerden değer alınır.

Yığını temizleme: Yığın işaretçisinin değeri sıfıra çekilerek yığın temizlenmiş olur.

Dev C++ kodları

#include<stdio.h>;
#define KAPASITE 5
int Yveri[KAPASITE]={0},yi=0;
// yi yığın işaretçisi
int koy(int veri)
{ // yığına koyma fonksiyonu.
if(yi>=KAPASITE)
{ printf("\nYigin Dolu veri alamaz.\n");return -111; }
else
{Yveri[yi]=veri; yi++; }
// yığını yazdır.
for (int i=0;i<5;i++)
printf("%d\n",Yveri[i]);
}

int al(){
if(yi<=0) printf("dizi bos alma islemi gecersiz.");
else
return Yveri[--yi];
}

main()
{printf("ufuk");
int secim, kveri
secim=0;
do{

printf("Menu\n 1- ekle \n 2- çıkar \n 3- cıkıs\n Seciminiz?");
scanf("%d",&secim);
printf("%d",secim);
switch(secim)
{case 1: printf("seçiminiz ekleme yapiliyor");scanf("%d",&kveri);koy(kveri); break;
case 2 : printf("cikarma islemi yapiliyor.");printf("%d", al());break;
}

} while(secim<=3);

getchar();
}

String link = "http://www.megatome.com";

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir