Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
Facebook, Twitter, Google+ veya e-posta ile paylaşın.
| Sorular | Makaleler | Üyeler | Etiketler  | İletişim
Soru sormak ya da cevap vermek için;
giriş yapın veya üye olun.

Sosyal medya hesaplarınızla da giriş yapabilirsiniz.
0

Verilen tek yönlü bağlı listeden yeni bir bağlı tek yönlü bağlı liste oluşturma

Amacım kendisine verilen liste ve iki adet integer indisle verilen listeden bu indisler arasındaki (indisler dahil )bağlı liste elemanlarından yeni bir bağlı liste oluşturmaktı ama yanlış sonuç alıyorum
public class Eleman<T>{
    T deger;
    Eleman ileri;

    public Eleman(T deger) {
        this.deger = deger;
        this.ileri = null;
    }
}

public class BagliListe {
    Eleman ilk;
    Eleman son;

    public BagliListe() {
        this.ilk = null;
        this.son = null;
    }

    void basaEkle(Eleman eklenen){
        if (son==null)
            son=eklenen;
        eklenen.ileri=ilk;
        ilk=eklenen;
    }

    void arayaEkle(Eleman eklenen, Eleman once){
        eklenen.ileri=once.ileri;
        once.ileri=eklenen;
    }

    void sonaEkle(Eleman eklenen){
        if (ilk==null)
            ilk=eklenen;
        else
            son.ileri=eklenen;
        son=eklenen;
    }

    void bastanSil(){
        ilk=ilk.ileri;
        if (ilk==null)
            son=null;
    }

    void sondanSil(){
        Eleman yedek=ilk, once;
        once=null;
        while (yedek!=son){
            once=yedek;
            yedek=yedek.ileri;
        }
        if (once==null)
            ilk=null;
        else
            once.ileri=null;
        son=once;
    }

    void aradanSil(Eleman silinen){
        Eleman yedek=ilk, once;
        once=null;
        while (yedek!=silinen){
            once=yedek;
            yedek=yedek.ileri;
        }
        once.ileri=silinen.ileri;
    }

    void listeYazdir(){
        Eleman yedek=ilk;
        while (yedek!=null){
            System.out.print(" "+yedek.deger);
            yedek=yedek.ileri;
        }
    }

    <T> Eleman ara(T aranan){
        Eleman yedek=ilk;
        while (yedek!=null){
            if (yedek.deger==aranan)
                return yedek;
            yedek=yedek.ileri;
        }
        return null;
    }

    int elemanSayısı(){
        int sayac=0;
        Eleman yedek=ilk;
        while (yedek!=null){
            yedek=yedek.ileri;
            sayac++;
        }
        return sayac;
    }

    Eleman indisElemanAra(int indis){
        Eleman yedek=ilk;
        if (ilk==null)
            return null;
        int sayac=0;
        while (sayac<indis && yedek!=null){
            yedek=yedek.ileri;
            sayac++;
        }
        return yedek;
    }

    public static BagliListe altKumeOlustur(BagliListe liste1,int bas, int son) {

        //
        Eleman b=liste1.indisElemanAra(bas);
        Eleman s=liste1.indisElemanAra(son);

        //alt kümenin tutulacağı bağlı liste oluşturuluyor
        BagliListe liste_2=new BagliListe();

        Eleman yedek=b;
        Eleman e;

        while (yedek!=s){
            e=new Eleman(yedek.deger);
            liste_2.basaEkle(e);
            yedek=yedek.ileri;
        }
        return liste_2;
    }

}


import java.util.Scanner;

public class Test {
    public static void main(String[] args) {

        //Liste oluşturuluyor
        BagliListe liste_1=new BagliListe();

        //Elemanlara değerleri atanıyor ve listeye ekleniyor
        Eleman e1=new Eleman(5.2);
        liste_1.basaEkle(e1);
        Eleman e2=new Eleman(9);
        liste_1.basaEkle(e2);
        Eleman e3=new Eleman(90);
        liste_1.basaEkle(e3);
        Eleman e4=new Eleman(100);
        liste_1.basaEkle(e4);
        Eleman e5=new Eleman(55);
        liste_1.basaEkle(e5);
        Eleman e6=new Eleman(5);
        liste_1.basaEkle(e6);

        //istenilen altkümenin özelliklerinin okunabilmesi
        //için Scanner sınıfından nesne yaratılıyor
        Scanner oku=new Scanner(System.in);

        //istenilen altkümenin özelliklerinin tutulacağı
        //değişkenler tanımlanıyor
        int kumeBas=0, kumeSon=0;

        //özellikler alınıyor
        System.out.print("Alt kume baslangici: ");
        kumeBas=oku.nextInt();

        System.out.print("Alt kume sonu: ");
        kumeSon=oku.nextInt();

        //alt kümenin oluşturulması için değreler  'altKumeOlustur'
        //metoduna gönderiliyor ve oluşan yeni alt küme ekrana yazdırılıyor
        System.out.print("Alt kümeniz: ");
        liste_1.altKumeOlustur(liste_1, kumeBas, kumeSon).listeYazdir();

    }

}





Alt kume baslangici: 3
Alt kume sonu: 5
Alt kümeniz:  9 90

Henüz cevap veren yok.