Article Detail

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

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

Kuyruk (Queue) ön (front) ve arka (rear) indekslerine sahipti.Elemanlar arkaya eklenir önden çıkarılır.Çift yönlü listeler ile başa ve sona ekleyip çıkarma rahatça yapılabilir.

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.util.Scanner;

public class ElemanCallKuyruk {
  //sondan girip baştan çıkıcak
 
   public static void main(String[] args) {
      int secim,sayi;
      Eleman Front=new Eleman();
      Eleman Rear=new Eleman();
      
      Front.setOnceki(null);
      Front.setSonraki(Rear);
      Rear.setOnceki(Front);
      Rear.setSonraki(null);
      do{
         System.out.println("1. Çift Yönlü Kuyruğa Eleman Ekle");
         System.out.println("2. Çift Yönlü Kuyruktan Eleman Sil");
         System.out.println("3. Çift Yönlü Kuyruğu 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 newNode = new Eleman();
            newNode.setSayi(sayi);
            Eleman temp=Rear.getOnceki();
     
            temp.setSonraki(newNode);
            newNode.setOnceki(temp);
            newNode.setSonraki(Rear);
            Rear.setOnceki(newNode);
            break;
          case 2:
            Eleman temp1=Front.getSonraki();
            if(temp1!=Rear){
              Front.setSonraki(temp1.getSonraki());
              (temp1.getSonraki()).setOnceki(Front);
              System.out.println("Silinen Değer: "+temp1.getSayi());
            }else
              System.out.println("Çift Yönlü Kuyruk Boş");
            break;
          case 3:
            System.out.println("-----Çift Yönlü Kuyruk-----");
            temp=Front;
            while(temp.getSonraki()!=Rear){
              temp=temp.getSonraki();
              System.out.println(temp.getSayi());
            }
            System.out.println("--------------------------");
            break;
          case 4:   
            break;   
          default:
            break;
        }
     }while(secim!=4); 
   }
}

Share :


Yorum Yap