Skip to content

Instantly share code, notes, and snippets.

@MericBERBER
Created June 15, 2017 12:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MericBERBER/0ec3a938190e077189da802e22b4fb32 to your computer and use it in GitHub Desktop.
Save MericBERBER/0ec3a938190e077189da802e22b4fb32 to your computer and use it in GitHub Desktop.
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