Instantly share code, notes, and snippets.

Embed
What would you like to do?
mericberber.com
public class StackWithArray {
private int size;
private int stackArray[];
private int top;
public StackWithArray(){ //Constructor
this.size = 2; // Başlangıç için stack boyutu 2 olarak ayarlandı.
stackArray = new int[size];
top = -1;
}
public boolean isEmpty(){ // Stack boş ise true dönderir.
if(top==-1)
return true;
return false;
}
public void push(int a){ // Stackin en üstüne eleman ekler.
if(top >= size -1){
size *= 2;
int array2[] = new int[size]; // İki katı boyutta array oluşturuldu.
for(int i = 0; i < stackArray.length; i++){
array2[i] = stackArray[i]; // Mevcut arrayin elemanları oluşturulan arraye kopyalandı.
}
stackArray = array2; // Mevcut array referansının yeni arrayi referans etmesi sağlandı.
}
stackArray[++top] = a; // Eleman eklendi.(top önce artırıldı)
}
public int pop(){ // Stackin en üstündeki elemanı çıkartır.
if(top==-1){
System.out.println("Stack boş");
}
if(top <= size/4){
size = size/2;
int array2[] = new int[size]; // Yarı boyutta array oluşturuldu.
for(int i = 0; i < size; i++){
array2[i] = stackArray[i]; // Mevcut arrayin elemanları oluşturulan arraye kopyalandı.
}
stackArray = array2; // Mevcut array referansının yeni arrayi referans etmesi sağlandı.
}
return stackArray[top--]; // Eleman çıkarıldı. (top sonra azaltıldı)
}
public void print(){ // Elemanları yazdırır.
for(int i = 0; i<=top; i++){
System.out.print(stackArray[i]+" ");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment