Etiketler
bağlı liste implementasyonu, bağlı liste java kod, bağlı liste java listeyi yazdırma, data structer java codes, data structer java implementasyonu, data structer java kod, linked list yazdırma, linkedlist print, singly linked list java kod, veri yapıları ilkdegeratama, veri yapıları java kod
- linked list implementasyonlarında neatbeans idesi kullanıcagım ben
- new project deyip ,linkedlistdeneme adında bir proje olusturacagız.
- daha sonra 3 farklı class(sınıf) oluşturacagız ,iki de olur bu .
- Ben programı test etme classını ayrı yapmak isteğdğim için 3 tane class acacagım .
- Source packet in altındaki klasöre sag tıklayıp new classa tıkalyacagız
- class adına Node diyip tıklayacagız
- daha sonra yine aynı sekilde ,new class diyeceğiz
- classın adını bu sefer Test diyeceğiz
- yeniden ve son kez new class diyip classımızın adına linkedlistdeneme diyeceğiz
- ve linked list yapımızı oluşturmaya başlayacagız
- yani totalde ,linkedlistdeneme,Node ve Test adında aynı packet altında 3 classımız olacaktır
/* //Node değimiz kavram ,linked list(singly ,tekli baglı liste) ,doubly linked //list(ikili baglı liste ) vb . yerlerde karsılasacagımız bir kavram
//Node dizideki her bir elemana verilen addır diyebiliriz ,class olarak //tanımlayıp
//her Node o Node daki datayı(veriyi ,degeri) ve kendinden bir sonraki Nodun //adresini tutar,yani singler linked listler 2 veriden oluşur */
package linkedlistdeneme;
public class Node //bir Node classı oluşturuyoruz
{
int data; /* //data türümüz ne ise o türden bir data oluşturuyoruz,string de //olabilirdi bu //başka bir seyde
Node next; // bir sonraki nodu
Node(int data) //sınıf adıyla aynı olan constructor ,ilk metod var burada , ilk //atamayı //yani Nodun datasını,verisini kullanıcıdan parametre olarak //almamızı saglıyor */
{
this.data=data;/* //this yapisi aynı sınıfta aynı iki değişken adını kullndıgımız //için //kullanıldı, data lardan birinin adı başka olsaydı this kullanmayacaktık */
}
}
package linkedlistdeneme; //paket adımız aynı görüldüğü üzre
public class LinkedListdeneme {/* //burada singly(tekli ) baglı liste //implementasyonlarını yapacagız , implementasyondan kasıt Node a eleman //ekleme,Node un datasını yazdırma vb işlemlerdir. */
Node head; /* // Node classından bir head(kafa ,baş) nodu olşturduk,atamayı //yapacagız buna ,head ilk eleman olacak ve bunun nextine, sonrasına Node //lar ekleyeceğiz */
Node next; /* //bir sonraki Node a point etmesi(işaret etmesi,göstermesi) için //next oluşturuyoruz */
void ilkEleman(int data) /* //metodumuzun adı ilkeleman ,parantezle bizden data //bekliyor kiii o data yı head yapsın,baş yapsın. gelenleri de head in ardına //eklesinn . head i tutmazsa ya da kaybederse diyelim listede gezemez ,bütün //liste kaybolur. head .data|head.next –> head.next.data|head.next.next //->
//diye liste sonuna kadar gidiyor .umarım acıklayıcı olmustur. next.next //ifadesi java da kabul ediliyor. ama 3 tane ve daha fazla olsa olmuyor bunu //unutmayalım. bunun için zaten temp değişkeni olusturup onunla Node //larımız üzerinde gezeceğiz
*/
{
Node n=new Node(data); /* //Node türünde ,n adında bir nesne olusturuyoruz,int //data olarak belirttiğimiz head kısmının datasını ,asagıdaki gibi head a //atıyoruz,artık head in datası bizim parametre olarak girdiğimiz deger //olacaktır
//n adında bir Node umuzu ekleyeceğiz ,ve head olsun istiyoruz değil mi ?
//öyleyse soldan data ve next adında iki bilgiye sahip n Nodumuzun geldiğini //düşünelim ,sagdada head imizi düşünelim. */
n.next=head; // diyerek n Nodumuzu head e bagladık ,point ettik
head=n; /* //böyle yaparakta dedikki ,n Nodum, artık sen head ol ,listenin baş //Nodu ol dedik
//nNode : n.data|n.next –>(n.next baglamaktır ) head Nodu */
}
/*
//şimdi de ne ekledik,listemizde ne var,hangi elemanlar var ? Nodumuzu //,varsa Nodelarımızı bir görmek için bir print ( ekrana yazdırma metodu //yazalım ) */
void yazdir() /* //metod adı yazdir
{ Node temp; //geciçi ,temp bir değişken tutarak ,head kaybetmeden //,kaybetmemek için bu değişkenle listemizde ,Nodelarımız üzerinde //dolaşacağız *** head i kaybettik mi listenin geri kalanı elimizden giderrrr //*** */
if(head==null ) //diyoruzki ,eger head Nodumuz Null sa,öyle bir Node //yoksaaa
{
System.out.println(“empty list”); // yazdır ki bileyim ben de boş oldugunuuu
}else { /* // burdada diyoruz kii eger headimiz boş değilseee
temp=head; //bu atamayı yapıyoruz ki icerde kullanalım ,headimizi temp //yapıyoruz, demiştikya headı kaybetmicezz ,temple işlem yapcaz head yerine //,böyle eşitleyerekte zaten headimiz temp oldu */
while(temp.next!=null)/* //burdada diyoruzki temp ,sen headden ,yani listenin //basından //hele bi başlaa sonra bi sonraki Node a ,sonra bi sonraya daha … //öyle öyleee üzerine //gelceğin en son Nodun bir sonrasi , nextiii ,null ise ; //ki nu ne demek : liste,linked list,Nodelarımızz burda bitiyor demek */
{
System.out.println(temp.data); /* //temp Nodelarımızın datalarınıı,içindeki //degerleri yazdır diyoruzz ,while ldöngümüzün bu sart saglandıgı sürece
temp=temp.next; //hani dedikya temp ,bi sonraki Node a git, sonra bi //sonrakine öyle öyle liste sonuna kadar diye .. temp i mizin bir Node da sabit //kalmamasını ,bi sonraya ,bi sonraya daha gitmesini ,gezmesini,dolaşmamızıı //bu eşitlik saglıyor */
}
System.out.println(temp.data); /* // burada da son değerimizi while döngüsünün //dısında elde edip,degerini yazdırıyoruz */
}
}
package linkedlistdeneme; //dikkat edelim paketimiz aynı, dedğmiz gibi
public class Test { //Test classımız deneme yapcagımız yer
public static void main(String[] args) {
LinkedListdeneme liste=new LinkedListdeneme(); /* // metodlarımızı yazıdıgımız //class ile,liste adında bir nesne olusturduk ,yani singly ,tekli ,baglı listemizin //,linkedlistimizin adıı liste artık */
liste.ilkEleman(299); /* //liste.metodadi seklinde cagırıp,ilk elemanı linked //listemize //parametre olarak ekledik ,metod implementasyonunu yukarıda //anlatmıstık
//ekrana yazdırmak için de metodumuz cagiralım */
liste.yazdir();
} /*
//programı calıştırdıgımızda 299 yazısını ekranda göreceğiz
//linked list ,baglı liste, singly list ilk deger atama ve ekrana yazdırma //metodları anlatıldıgı gibidir */