Etiketler

,

linked list :

node :her bir elemandır
her bir eleman kendinden sonra gelen elemanın adresini gösteriyo
bellekte rastgele adreslerde tutulabilirler
sıralı olmak zorunda değil

link list dinamik olarak liste yapısıdır
boyutunu değiştirebilcez
her node içinde bir data tutar bir de sonraki nodun adresini tutar

Public class ListNode {
int data ;
public ListNode sonraki ;

}

current dügüm :üzerinde bulundugumuz

head: bası oluyo listenin
tail : listenin sonu oluyo

linklist tek yönlü baglı listeler : sonrakinn datası var
en sondakinin bagı null olmalıdır *

araya elaman ekliceğin zaman baglantıyı kaybetmicen
header ı kaybetmicez kuyruk gecerli değil
headırı bulup kuyruga kadar gideriz

tek yönlü baglı liste anlatıldı

bigo en kötü çalışma zamanı
big omega da en iyi calışma zamanı

hem en iyi hem de en kötüsü eşit olan sey onun tetasidir

static dizi: bellekte sıralı olarak ayrılıyor
avantajı nedir ? meselaa index bazlı erişim yapılabilir
dogursal diziler büyüp kuçılemez

dinamik liste: bellekte farklı adreslerde yer ayrılıyor
dezavantjı nedir ?mesela headredan başlayıp,herseferinde istenilen yere kadar gidion
baglı listeler büyüyp kuculebilir

baglı listeler:
node :data ve referans tutar içinde

bir agac üzerinde ,liste üzerinde gezmeye TRAVERS denir

soru :sınıfta çözdü,sıanda sorsaydık keske ya dedi

public void deleteExacData(int data)

Node current=head;
Node temp=null ;

(Current)4–2—4–2—8—2–6
while(current!=null)
{
if(current.data==data)
temp=current.next.next;
current.next=temp;
}

current=current.next;
}

bütün 2 leri siler mesela bu 2 verirsen ****

Doubly linekd list:
bütün nodelar bir öncesinin ve bir sonrasının adresini tutar
datası da var

Dairesel baglı liste :tek yönlünün
en sondaki sey tail.next=head;
eger herhangi bir nodun nexti head i gösteriyosa dur dicen ***

dairesel iki yönlü liste :
ses kaydı baslıyo
head ı kullanmak yasak,tempe atcan onuuuu

25 sayfada 5. hafta notunda while içinde temp.next değilde temp desek ne olur

nullpointer exepciıon verdi
en son dügüme geldiğinde temp var ama nexti yok
dolayıısyla hata veriyo temp=temp.next asamasında

istenilen elemanı silme : ödevde yapamadıgınsey

boolean kkualnıcıyı bşlgilendirmek için
false ve true diye hani
head i kaybetme

bagı koparmadan önce bagı gecici bi yerde tut

kodlarda eksik yer bıtrakmıs musa hoca ,aman dikkat et ***

publicbooleandeleteNode(intdata)
{
booleandurum = false;
Nodecurrent= head;
Nodetmp= null;
if(current.data== data)
{
tmp= current.next;
head= tmp;
durum=true; //head=current.next eşit
}
else{ // else
{
while(current.next!= null)
{
if(current.next.data== data)
{
tmp= current.next;
current.next= tmp.next;
durum = true;
break;
}
current= current.next;
}
}
returndurum;
}

nextinin nexti nulla eşit değilse caltır diekmişiz galiba ,bi kontrol buymus

eksik bırakmış hoca
sınavda linkedlist cizse 3 kutu çiz kutular ğzerinden istenen islemleri yap

basit ifler yazcaz

nwenıde.next=current.text;
current.next=newnode;

sınavda yerleri değiştir 0 puan gtti soru *****
Doubly linked list :
sınavda arraylist tut deriz int data yerine olabilir yani
*****

öncesi ve sonrasi önce null yapcan head yok cünkü
basa ekleme
previus –new node–next

headin previusu null degil artık ,temp olcak

ve artık temp head olcak

en son yaazcaz onu head=temp; i

complexy analizi sorcak sınavda 1 nisan
tnımlarla işimiz yok
tanımlam
linked list
stack analttık

stack :neydi : LIFo idi

bu hafta kuyruk :

kuyruk bu hafta
queue :

yapılan bi işin srayla calısması içindir

first in first out :fifo ,lılo

enqueue :pop
insert de olabilir adı

dequeue :oush işlemine karsılık gelir
remove delete olarak ta adı vardır

en sondaki eleman rear ;
bastaki eleman front ;

baglı liste ile yaparız
diziyle yapabliriz

banka kuyrugu gibi queue

kuyrukta her zmn head den eklenir,tailde alınır

front kuyrktan silmeden en önde lkim var onu alıyom
araya ekeleme araya silme yok stacktaki gibi

sondan ekle bastan al : kuyruk yapısı

front ve rear dicez artık

linked list yaparız
diziuzerinde diresel bir yapı olusturabilirz
dizi uzerinde kaydırmalı yapabilirzi
öncelikli kuyruklar (priorty queues)
3 kutu çiz bunu yap ,hepsini yapıyosun

heap nedir bi bakın ögrenin

dizi tabanlı yıgın :
stackte :size ı bulcaz
linked list olusturmadan yapcaz node class felan

space complety nedşr ir linked listte :eklediğim kadardır

dizi tabanlı yaparsan size i nın sen belirliyon
linked listle yapıyosann size ı değişiyo
circular liked list aynısı diyip gectiii….
sonunun nextını head yapcan

yıgıt : stack : (yıgın ):

last in first out lifo

son giren ilk cıkar
ilk giren son cıkar

en son gelen eleman en ilk hizmeti alcak olan elemandır

stack gecici bir alandır

operasyoları
empty stack: boş yıgıt
push(koy) eleman eklemek için kullkanılır
girdi :nesne cıktı :nesne dir
nesne koyarsın
pop(al) eleman ceker
girdi : yok cıktı :nesne

top(): en son elemanı cıakrmadan geri döndrüür
girdi :yok cıktı :nesne
size() : depolanan nesne sayını geri döndürür

isEmpty(): yıgında nesne bulunup bulunmadıgı bilgisini geri döndürür

stack icerisnde list tuabilirzi
baska bir class tutabilirz

nerde kullanılıyo ?
web browserlardaki

java prog calıstıgında static değişkenler nere
dizi bazlı listede tek bir index alıp artırırız
baglantılı liste seklinde stack implemetasyonu headıra ekle headrdan al
stackta top a ekle yapcaz araya islem felan olmıyy
son dan silmek te yok