Article Detail

Çift Yönlü Bağlı Listede Yığıt
Çift Yönlü Bağlı Listede Yığıt

Mikail Şenel  |  Veri Yapıları  |   25 Kasım 2016 |  0 |  7

İlk giren son çıkar mantığı ile header’dan sonraki yani başa eleman ekleme ve baştan eleman silme işlemini gerçekleştireceğiz. Size tavsiyem yukarıdaki gibi şekli çizip okları da kanca gibi düşünüp mantığınıza yatırıp ondan sonra kodlamaya geçmek, bu size zaman kazandırıp doğru sonuca çabuk ulaşmanızı sağlayacaktır.

Kurucu Metodumuz:

 public class Eleman {
   int sayi;
   Eleman onceki,sonraki;
   public void setSayi(int sayi){
      this.sayi=sayi;
   }
   public int getSayi(){
      return this.sayi;
   }
   public void setSonraki(Eleman s){
      this.sonraki=s;
   }
   public Eleman getSonraki(){
      return this.sonraki;
   }
   public void setOnceki(Eleman o){
      this.onceki=o;
   }
   public Eleman getOnceki(){
      return this.onceki;
   }
}

Çağırma Metodumuz:

import java.awt.HeadlessException;
import java.util.Scanner;

public class ElemancallYigit {
   public static void main(String[] args) {
      Eleman Header=new Eleman();
      Header.setSonraki(null);
      Header.setOnceki(null);
      int secim,sayi;   
      do{
         System.out.println("1. Çift Yönlü Yığıta Eleman Ekle");
         System.out.println("2. Çift Yönlü Yığıttan Eleman Sil");
         System.out.println("3. Çift Yönlü Yığıtı Yazdır");
         System.out.println("4. Çıkış");
   
         System.out.println("İstediğiniz komutu giriniz: ");
         Scanner scan = new Scanner( System.in);
         secim = scan.nextInt();
 
         switch (secim) {
           case 1:
              System.out.println("Eklemek istediğiniz sayıyı giriniz: ");
              sayi=scan.nextInt();
              Eleman newEleman = new Eleman();
              Eleman temp;
              newEleman.setSayi(sayi);
              if(Header.getSonraki()==null){
                 Header.setSonraki(newEleman);
                 newEleman.setOnceki(Header);
                 newEleman.setSonraki(null);
              }else{
                 temp=Header.getSonraki();
                 Header.setSonraki(newEleman);
                 newEleman.setOnceki(Header);
                 newEleman.setSonraki(temp);
                 temp.setOnceki(newEleman);
              }
              break;
           case 2:
              Eleman temp1=Header.getSonraki();
              if(temp1!=null){
                 int silinen=temp1.getSayi();
                 Header.setSonraki(temp1.getSonraki());
                 temp1.setOnceki(Header);
                 System.out.println("Silinen Veri: "+silinen);
              }else
                 System.out.println("Çift Yönlü Yığıt Boş");
              break;
           case 3:
              System.out.println("-----Çift Yönlü Yığıt-----");
              temp=Header;
              while(temp.getSonraki()!=null){
                 temp=temp.getSonraki();
                 System.out.println(temp.getSayi());
              }
              System.out.println("--------------------------");
              break;
           case 4:   
              break;
           default:
              break;
         }
 
      }while(secim!=4); 
   }
}

Share :


Yorum Yap