[Nasıl] Java veriyapıları yığıt tekniği ile veri depolama

Başlatan karboran, 26 Ekim 2012 - 20:38:08

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

karboran

http://yusufduzgun.com/2012/10/26/java-veri-yapilari-yigit/

Bu sene gördüğümüz veri yapıları dersinde işlediklerimizi kendi anladığım şekilde sizlere aktaracağım umarım faydalı olur.

Evet hemen başlayalım yığıt veri depolama LIFO (last in first out) tekniği ile yazılır. Yani son giren ilk çıkar , giren çıkan derken verilerden bahsediyoruz, örneğin bir veri depomuz olsun buraya yusuf tuğba hüseyin adında üç tane veri ekleyelim bunları çıkarırken ilk hüseyini çıkarmak zorundayız. Hoca derste anlatırken hemen aklıma diziler ve ardından yusufuda çıkarabileceğimiz geldi evet çıkarabilirsiniz :) ama, bu LIFO mantığına uymak zorundaymışız :) .. Bizde uyacağız tabi ilk hüseyin sonra tuğba sonra yusufu çıkaracağız :) .. neyse anlatırken benim bile kafam karıştı iyisimi basit bir örnek ile anlatalım :) ..

Not: Programı çalıştırmak için önce "staticyigit" adında bir package oluşturup içine  "staticYigitCalistir"  ,  "stack"  ve "panel" adında 3 tane sınıf oluşturup aşağıdakilerini kopyala yapıştır yapın

package staticyigit;
/**
*
* @author karboran
*/
public class staticYigitCalistir {
public static void main(String[] args) {
panel.main(args);
}
}


package staticyigit;

import javax.swing.JOptionPane;

/**
*
* @author karboran
*/
public class stack {

private int[] stackArray; // verileri atayacağımız dizimi oluşturduk
private int maxSize; // dizimizin boyunutu verdik
private int top; // veri eklerken çıkarırken nerede olduğumuzu bize söylecek sayac gibi düşünelim :)

public stack(int s) {
this.top = -1; // -1 dedik çünkü dizimiz başlangıçda boş olmalı :)
this.maxSize = s;  // kullanıcı dan aldığımız sayı ile dizimizin boyunutunu belirleyecek olan MaxSize a atadık
this.stackArray = new int[maxSize]; // oluşturduğumuz dizinin boyunu max size olarak belirledik
// not neden ana class ımızın içine this olarak belirledik ? .. Panel de veya bunları başka bi yerde sıkıntısız kullanabilmek için ;)
}

public boolean isFull() {
return top == maxSize - 1; // dizimizin dolu olup olmadığı hakkında bilgi almak için oluşturduğumuz metod
}

public boolean isEmpty() {
return top == -1; // dizimizin boş olup olmadığı hakkında bilgi almak için oluşturduğumuz metod
}

public int size() {
return top + 1; // dizimizin o anda kaç tane veriye sahip olduğunu bulmak için kullandığımız metod
}

public int push(int data) {// evet diziye veri ekleme metoduna geldik :)
if (isFull()) { // dolumu kontrol ediyoruz dolu
JOptionPane.showMessageDialog(null, "Array is Full Sorry Dude :) ");
return 0; // bu ne diyeceksiniz ? Ekrana yazdırma işlemini burada dönderdiğimiz değere göre yapıyoruz :)
// panele deki metodlarımıza bakınca anlayacaksınız burayı es geçin şimdilik
} else {
top++; // önce top umuzu bir artırıyoruz
stackArray[top] = data; // sonra kullanıcıdan aldığımız veriyi diziye atıyoruz
return 1; // sabret biraz paneldeki ekleme metoduna bakınca anlayacaksın :)
}
}

public int pop() { // veri çıkarma metoduna geldik
int temp = 0; // kullanıcı veriyi silmek istediği zaman buna ihtiyacımız top u bi eksiltiriz olur biter ama o veriyi kullanıp silmek istediğin de ,
// bize lazım , ve ben şuan sildiğim veriyi ekrana yazdırmak istiyorum yani kullanacağım :)
if (isEmpty()) { // boşmu diye bakıyoruz
JOptionPane.showMessageDialog(null, "Array is Empty Sorry Dude :) ");
return temp;
} else {
temp = stackArray[top]; // burada o sileceğimiz veriyi temp e atıyoruz ki kullanabilelim
top--; // silme silme diyoruz öyle birşey yok :) , top u bir geri çekip yeni veriyi üzerine yazıyoruz o kadar :)
return temp; // veriyi geri dönderelim ki kullanabilelim demi :)
}

}
}


package staticyigit;
/**
*
* @author karboran
*/
public class panel extends javax.swing.JFrame {
stack x = new stack(10); // dizimiz 10 luk bir dizi olsun :) ve bu sınıfa x dedik metodları aşağıda hep x. diye çağıracağız
String yazi = ""; // bunu ekrana yazdırırken kullancaz class ımın içinde her yerde kullanabileğim diye burada oluşturdum

public panel() {
initComponents();
}

@SuppressWarnings("unchecked")
// Aşağıdaki bölüm arayüzü oluşturduğumuz bölüm orayı es geçin :) ) daha da altta metolar var orayı inceleyin :)
private void initComponents() {

jLabel1 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
diziT = new javax.swing.JTextField();
jButton3 = new javax.swing.JButton();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
sonEklenen = new javax.swing.JLabel();
sonCikarilan = new javax.swing.JLabel();
boyutT = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setFont(new java.awt.Font("Ubuntu", 1, 12));
jLabel1.setForeground(new java.awt.Color(46, 72, 207));
jLabel1.setText("Static Yigit");

jButton1.setText("Ekle");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setText("Çıkar");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

diziT.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

jButton3.setText("Boyut");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});

jLabel2.setText("Son Eklenen :");

jLabel3.setText("Son Çıkarılan: ");

sonEklenen.setForeground(new java.awt.Color(235, 20, 20));

sonCikarilan.setForeground(new java.awt.Color(235, 20, 20));

boyutT.setForeground(new java.awt.Color(235, 20, 20));

jLabel4.setText("Yusuf Düzgün");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(70, 70, 70)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(85, 85, 85)
.addComponent(jButton3))
.addGroup(layout.createSequentialGroup()
.addGap(46, 46, 46)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(sonEklenen, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))))
.addGap(6, 6, 6)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(4, 4, 4)
.addComponent(boyutT, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jLabel4)
.addGroup(layout.createSequentialGroup()
.addGap(46, 46, 46)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(sonCikarilan, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3)))))
.addGroup(layout.createSequentialGroup()
.addGap(32, 32, 32)
.addComponent(diziT, javax.swing.GroupLayout.PREFERRED_SIZE, 294, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(136, 136, 136)
.addComponent(jLabel1)))
.addContainerGap(38, Short.MAX_VALUE))
);

layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {boyutT, sonCikarilan, sonEklenen});

layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addGap(15, 15, 15)
.addComponent(diziT, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(sonEklenen, javax.swing.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE)
.addComponent(sonCikarilan, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton3)
.addComponent(boyutT, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel4)
.addGap(29, 29, 29))
);

pack();
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

int sayi =  (int)(Math.random()*100); // veriyi 0-100 arasında random bir sayı olarak atayacağım
int w = x.push(sayi); // burada sayi değeri push metoduna yolladım ve diziye atama yaptırdım sonra bize geri dönen 0 veya 1 değerine
// göre ekrana yazdıracağım (panelde anlayacaksınız dediğim yer w > değişkeni :) )
if(w ==1){
yazi =  yazi +" - "+sayi; // yukarıda oluşturduğumuz String türünde yazı değişkenine eklediğimiz veriyi atadık
diziT.setText(yazi); // bunuda JTextField > diziT ye yazdırdık
sonEklenen.setText(""+sayi); // son eklenen sayımızıda JLabel > son eklenende yazdırdık
}

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
int temp = x.pop(); // veriyi sildirdik ve ekranda göstermek için w değişkenine 0 veya 1 dönderttirdik
if(temp != 0){  // metodda döngünün içine girmezze temp değeri ilk atağım gib sıfır kalacak yani aşağıdakileri program yapmayacak
String p = String.valueOf(temp); //  sildiğimiz değeri pop metodunda temp değişkenine atamıştık onu p ye atadık
int son = yazi.lastIndexOf(" - "+p); // son sildiğimiz yazıyı ekranda görebilmek için silinen verinin ilk başladığı uzunluk değerini bulduk
//neden indexOf yerine LAstindex of kulladığımıza gelince de aynı veriden iki tane atanmış olabilir ama biz Lifo mantığına uymak için
//son ekleneni kullanmak istiyoruz
yazi = yazi.substring(0, son); // bu komutlada yazi String imizi son a kadar yazdırıyoruz öğrneğin
// 1-2-3-4  > 4 ü sildiğimiz zaman 1-2-3 olarak yaz değişkenimizi tekrar kaydediyoruz
diziT.setText(yazi); // ekrana yazdırıyoruz
sonCikarilan.setText(p); // son sildiğimizide ekrana yazdırıyoruz
}

}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
boyutT.setText(""+x.size());

}

public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(panel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(panel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(panel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(panel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new panel().setVisible(true);
}
});
}

private javax.swing.JLabel boyutT;
private javax.swing.JTextField diziT;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel sonCikarilan;
private javax.swing.JLabel sonEklenen;package staticyigit;
/**
*
* @author karboran
*/
public class panel extends javax.swing.JFrame {
stack x = new stack(10); // dizimiz 10 luk bir dizi olsun :) ve bu sınıfa x dedik metodları aşağıda hep x. diye çağıracağız
String yazi = ""; // bunu ekrana yazdırırken kullancaz class ımın içinde her yerde kullanabileğim diye burada oluşturdum

public panel() {
initComponents();
}

@SuppressWarnings("unchecked")
// Aşağıdaki bölüm arayüzü oluşturduğumuz bölüm orayı es geçin :) ) daha da altta metolar var orayı inceleyin :)
private void initComponents() {

jLabel1 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
diziT = new javax.swing.JTextField();
jButton3 = new javax.swing.JButton();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
sonEklenen = new javax.swing.JLabel();
sonCikarilan = new javax.swing.JLabel();
boyutT = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setFont(new java.awt.Font("Ubuntu", 1, 12));
jLabel1.setForeground(new java.awt.Color(46, 72, 207));
jLabel1.setText("Static Yigit");

jButton1.setText("Ekle");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setText("Çıkar");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

diziT.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

jButton3.setText("Boyut");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});

jLabel2.setText("Son Eklenen :");

jLabel3.setText("Son Çıkarılan: ");

sonEklenen.setForeground(new java.awt.Color(235, 20, 20));

sonCikarilan.setForeground(new java.awt.Color(235, 20, 20));

boyutT.setForeground(new java.awt.Color(235, 20, 20));

jLabel4.setText("Yusuf Düzgün");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(70, 70, 70)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(85, 85, 85)
.addComponent(jButton3))
.addGroup(layout.createSequentialGroup()
.addGap(46, 46, 46)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(sonEklenen, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))))
.addGap(6, 6, 6)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(4, 4, 4)
.addComponent(boyutT, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jLabel4)
.addGroup(layout.createSequentialGroup()
.addGap(46, 46, 46)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(sonCikarilan, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3)))))
.addGroup(layout.createSequentialGroup()
.addGap(32, 32, 32)
.addComponent(diziT, javax.swing.GroupLayout.PREFERRED_SIZE, 294, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(136, 136, 136)
.addComponent(jLabel1)))
.addContainerGap(38, Short.MAX_VALUE))
);

layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {boyutT, sonCikarilan, sonEklenen});

layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addGap(15, 15, 15)
.addComponent(diziT, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(sonEklenen, javax.swing.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE)
.addComponent(sonCikarilan, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton3)
.addComponent(boyutT, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel4)
.addGap(29, 29, 29))
);

pack();
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

int sayi =  (int)(Math.random()*100); // veriyi 0-100 arasında random bir sayı olarak atayacağım
int w = x.push(sayi); // burada sayi değeri push metoduna yolladım ve diziye atama yaptırdım sonra bize geri dönen 0 veya 1 değerine
// göre ekrana yazdıracağım (panelde anlayacaksınız dediğim yer w > değişkeni :) )
if(w ==1){
yazi =  yazi +" - "+sayi; // yukarıda oluşturduğumuz String türünde yazı değişkenine eklediğimiz veriyi atadık
diziT.setText(yazi); // bunuda JTextField > diziT ye yazdırdık
sonEklenen.setText(""+sayi); // son eklenen sayımızıda JLabel > son eklenende yazdırdık
}

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
int temp = x.pop(); // veriyi sildirdik ve ekranda göstermek için w değişkenine 0 veya 1 dönderttirdik
if(temp != 0){  // metodda döngünün içine girmezze temp değeri ilk atağım gib sıfır kalacak yani aşağıdakileri program yapmayacak
String p = String.valueOf(temp); //  sildiğimiz değeri pop metodunda temp değişkenine atamıştık onu p ye atadık
int son = yazi.lastIndexOf(" - "+p); // son sildiğimiz yazıyı ekranda görebilmek için silinen verinin ilk başladığı uzunluk değerini bulduk
//neden indexOf yerine LAstindex of kulladığımıza gelince de aynı veriden iki tane atanmış olabilir ama biz Lifo mantığına uymak için
//son ekleneni kullanmak istiyoruz
yazi = yazi.substring(0, son); // bu komutlada yazi String imizi son a kadar yazdırıyoruz öğrneğin
// 1-2-3-4  > 4 ü sildiğimiz zaman 1-2-3 olarak yaz değişkenimizi tekrar kaydediyoruz
diziT.setText(yazi); // ekrana yazdırıyoruz
sonCikarilan.setText(p); // son sildiğimizide ekrana yazdırıyoruz
}

}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
boyutT.setText(""+x.size());

}

public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(panel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(panel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(panel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(panel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new panel().setVisible(true);
}
});
}

private javax.swing.JLabel boyutT;
private javax.swing.JTextField diziT;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel sonCikarilan;
private javax.swing.JLabel sonEklenen;

}

}
Kabin basıncı düştü motorlarda arıza !
Vakit süratle aksın hakimiyet kur nabıza !
İçinden nasıl geldiyse yaz anlat herşeyi ,
Bu mektup varmıcak hayalini kurduğun kıza !

Yedionbir

Alıntı yapılan: karboran - 26 Ekim 2012 - 20:38:08
Bu sene gördüğümüz veri yapıları dersinde


sende benim gibi bil müh 2. sınıfsın galiba LIFO tekniğini ilk defa görüyorum bizden hızlımı ilerliyorsunuz yoksa sorting(sıralama) algoritmaları konuları hiç mi gösterilmedi ?

karboran

Sıralama algoritmları görmedik daha bunlardan sonraki konumuz, fırat müh akar :)
http://tr.urapcenter.org/2012/2012_t10.php burayı yazdığımda bende bilmiyordum böyle olduğumuzu :D
Kabin basıncı düştü motorlarda arıza !
Vakit süratle aksın hakimiyet kur nabıza !
İçinden nasıl geldiyse yaz anlat herşeyi ,
Bu mektup varmıcak hayalini kurduğun kıza !

sem

Güzel bilgi olmuş teşekkürler arkadaşlar.


Bu konular bilgisayar 2. sınıfta mı gösteriliyor. Daha erken diye düşünüyordum.


Bu arada veri yapısı olarak değil de Java içerisinde stack kullanmak isteyen arkadaş olursa kendi içerisinde mevcut olduğunu da anekdot olarak düşmüş olalım, stack, list, queue vs gibi tüm yapılar Java'da salt import ile kullanabilme şansına sahibiz.


Tekrardan teşekkürler paylaşım yapan arkadaşa.


NOT: Stack veri yapıları ile ilgili daha fazla örnek isteyen arkadaş olursa C bölümünde C ile de ilgili yapıyı işlemiştik diye hatırlıyorum

".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

WhiteScars

Bu tip data yapılarını uzun uzun arrayler ile yapmak yararlı nasıl çalıştığını çözebilmek için. Fakat ilerde bu şekilde tek tek uğraşmamak lazım. Javada Vector, Stack, Queue, Map gibi bir çok hazır data yapıları bulunuyor. Bunlarla LIFO, FIFO vs yapılarını oluşturmak oldukça kolay :)
İnsanoğluna bırakabileceğiniz en güzel miras tecrübelerinizdir.