Auzef Veri Yapıları 2025-2026 Vize Soruları
https://lolonolo.com/2026/09/14/veri-yapilari-2025-2026-vize-sorulari/
auzef, Veri Yapıları, Yönetim Bilişim Sistemleri
Show More Show Less View Video Transcript
0:00
Lolo Nolo platformuna hoş geldiniz. Bu
0:02
incelememizde veri yapıları 2025-2026
0:05
dönemi vize konularını, çıkmış soruları
0:07
ve tüm o kritik detayları birlikte
0:09
masaya yatırıyoruz. Biliyorsunuz
0:11
[homurdanır]
0:11
bilgisayar bilimlerinin bel kemiği bu
0:13
konu. Akademik detaylarda boğulmadan ama
0:16
işin özünü de kaçırmadan ilerleyeceğiz.
0:18
Hiç vakit kaybetmeyelim. Hemen
0:19
başlayalım. Gündemimiz oldukça net.
0:22
Sırasıyla veri ve DIV piramide, diziler
0:26
ve bellek yönetimi, tek yönlü bağlı
0:28
listeler, çift yönlü bağlı listeler ve
0:31
son olarak dairesel bağlı listeler
0:33
üzerinden geçeceğiz. Temelden alıp
0:35
karmaşıya doğru adım adım gideceğiz.
0:37
Merak etmeyin hepsi tıkır tıkır
0:39
oturacak. 1inci bölüm Veri ve DKIW
0:43
piramidi. İşin en başına temellere
0:46
dönüyoruz. Yani gerçek dünyadaki o
0:48
karmaşık durumları alıp makinenin
0:50
anlayabileceği o yapılandırılmış zekaya
0:52
tam olarak nasıl dönüştürüyoruz? Aslında
0:55
süreç şöyle işliyor. Dünyadan
0:57
topladığımız o ham işlenmemiş gerçeklere
1:00
veri diyoruz. Birinci adım bu. İkinci
1:02
adımda bu verileri yapılandırıp
1:04
enformasyona dönüştürüyoruz. Üçüncü
1:06
adımdaysa işin içine bağlam katıyoruz ve
1:09
artık elimizde bilgi oluyor. Buna
1:11
bilgisayar bilimlerinde meşhur DİKW
1:13
piramidi diyoruz. Ama asıl sorumuz şu.
1:16
Peki bu topladığımız bilgi bilgisayarın
1:18
içinde o RAM'da tam olarak nerede ve
1:20
nasıl yaşıyor? İşte veri yapıları
1:22
dersinin tüm esprisi tam da burada bu
1:25
noktada başlıyor. İkinci bölüm: Diziler
1:28
ve bellek yönetimi. Bilginin RAM'de
1:30
nasıl depolandığına dair o ilk ve en
1:33
temel durağımız olan dizilerle devam
1:35
edelim. Sınavlarda kesinlikle karşınıza
1:38
çıkacak bir kavram var. Zaman
1:40
karmaşıklığı yani time complexity. Şimdi
1:43
diziler kelimenin tam anlamıyla
1:45
inanılmaz hızlıdır. Peki ama neden?
1:47
Çünkü verileri hafızada öylece dağınık
1:50
bırakmazlar. Yan yana ip gibi dizerler.
1:52
Bu durum işlemcinin ön bellek
1:54
yerelliğini yani o meşhur cash locality
1:57
mekanizmasını kusursuz bir şekilde
1:59
kullanmasını sağlar. Sonuç ne mi?
2:01
Dizideki herhangi bir elemana O1 hızında
2:04
yani anında erişebilirsiniz. Düşünsenize
2:07
bu bir işlemci için adeta rüya gibi bir
2:10
şey. Ama işte her güzel şeyin bir bedeli
2:13
var. Tabii bu mükemmel hızın altında
2:15
yatan o ölümcül kusur şu: Dizilerin
2:18
boyutu maalesef sabittir. Son derece
2:21
katı, esneklikten tamamen uzak bir
2:23
yapıdan bahsediyoruz. Eğer programınız
2:26
çalışırken yani runtime sırasında
2:29
boyutun değişmesini isterseniz işte o
2:31
zaman C++'taki new komutunu sahneye
2:33
çağırmanız ve dinamik hep bellekten özel
2:36
olarak yer ayırtmanız gerekiyor. Ve işte
2:39
aslı bomba burada patlıyor. Hep
2:41
üzerinden bellek ayırdığınızdan
2:43
direksiyon tamamen sizin elinizde. Peki
2:45
ya işleminiz bittikten sonra bu alanı o
2:48
delete komutuyla sisteme iade etmeyi
2:50
unutursanız sınav kağıdınızda size
2:52
kocaman bir sıfır getirebilecek o büyük
2:54
felaketle karşılaşırsınız. Bellek
2:56
sıntısı yani memorik. Sistem
2:59
kaynaklarını adeta sömürür ve
3:01
programınızın çökmesine yol açarsınız.
3:03
Altın kuralımız şu: İşletim sisteminden
3:06
ödünç aldığın o belleği işin bitince
3:08
mutlaka geri ver. 3. bölüm tek yönlü
3:11
bağlı listeler. Dizilerin o katı
3:14
kısıtlayıcı sınırlarına karşı
3:15
geliştirilen asıl devrime, veri
3:17
yapılarının o esnek ve dinamik dünyasına
3:20
nihayet giriş yapıyoruz. Aslında diziler
3:23
ve bağlı listeler arasındaki felsefi
3:25
fark gün gibi ortada. Diziler bellekte
3:28
devasa bir blok halinde omuz omuza duran
3:31
statik yapılarken bağlı listeler
3:33
verileri hafızanın yani hep alanının
3:36
tamamen alakasız dağınık köşelerine
3:38
serpiştirir. İyi de bu dağınık veriler
3:41
hafıza okyanusunda birbirini nasıl
3:43
bulacak? Tabii ki o zekice tasarlanmış
3:46
işaretçiler namı diğer pointerlar
3:48
sayesinde. Bir bağlı listenin en temel
3:51
yapı taşı olan o düğüm yani nodun
3:54
anatomisine şöyle bir yakından bakalım.
3:56
Bir düğüm dünyada sadece iki şey bilir.
3:59
İlki taşıdığı kendi verisi. İkincisi ise
4:02
kendisinden hemen sonra gelecek olan o
4:04
düğümün hafızadaki kesin adresi. Sadece
4:06
bu next işaretçisini kovalayarak
4:09
birbirine bağlı devasa veri zincirleri
4:11
inşa edebilirsiniz. Tıpkı bir hazine avı
4:14
gibi. Fakat tahmin edersiniz ki bu
4:16
muazzam dinamik esnekliğinde bir bedeli
4:18
var. Dizilerdeki o şipşak anında erişim
4:21
hızı olan Ovenwen'i burada unutun. Bir
4:24
elemanı aramak istediğinizde hafızanın
4:27
dört bir yanına saçılmış olan o
4:29
düğümleri sırayla tek kapı kapı dolaşmak
4:32
zorundasınız. İşte bu meşakkatli süreç
4:35
zaman karmaşıklığının maalesef ON'e
4:37
çıkmasına sebep oluyor. Şimdi burayı pör
4:40
dikkat dinlemenizi istiyorum. Çünkü bu
4:43
tam bir vize kurtarıcı taktik. Bir bağlı
4:45
listeden düğüm silerken o adrese sakın
4:48
ama sakın doğrudan silmeye kalkmayın.
4:51
Eğer baş düğümü yani head işaretçisine
4:53
önce geçici bir temp işaretçisine emanet
4:56
etmeden doğrudan siler ya da
4:58
ilerletirseniz geçmiş olsun. Geriye
5:00
kalan tüm o koca veri zincirinin
5:02
adresini sonsuza dek kaybedersiniz.
5:04
Bütün listeniz hafızanın okkar karanlık
5:06
uzay boşluğunda kaybolup gider. 4.
5:09
bölümümüz çift yönlü bağlı listeler. Tek
5:13
yönlü listelerde hep ileri gitmek
5:15
zorundayız dedik ya işte bu bazen can
5:17
sıkıcı bir probleme dönüşebiliyor. O
5:19
yüzden şimdi veri yapılarının bir
5:21
sonraki evrimsel adımına o geriye dönme
5:24
imkansızlığını ortadan kaldıran yapıya
5:26
geçiyoruz. Olayımız şu: Düğümümüze bir
5:29
deprive yani bir önceki düğümü işaret
5:32
eden yeni bir pointer ekliyoruz. Ama
5:34
biliyorsunuz yazılım mühendisliğinde her
5:36
şey bir takastır. Bir tradeoff
5:38
meselesidir. Evet, artık listede geriye
5:41
doğru da dolaşabiliyoruz. Harika. Fakat
5:44
bu ekstra işaretçi bellek kullanımını
5:46
ciddi ölçüde şişiriyor. İnanmıyorsanız
5:49
C++'da size of operatörünü çalıştırıp
5:51
gözlerinizle görebilirsiniz. Unutmayın
5:54
daha fazla yetenek her zaman daha fazla
5:57
dellek faturası demektir. E iyi de sırf
6:00
geri gidebilmek için neden bu kadar
6:02
bellek israf edeyim ki diye
6:03
sorabilirsiniz haklı olarak. Gerçek
6:06
dünyaya bir bakalım. Şu an internet
6:08
tarayıcınızdaki o geri ve ileri oklarına
6:11
tıkladığınızda arka planda tıkır tıkır
6:13
çalışan şey tam olarak bu çift yönlü
6:15
bağlı listelerdir veya sistem
6:17
performansını uçuran o LRU yani en son
6:20
kullanılanlar ön bellek mekanizmaları da
6:23
tamamen bu yapı sayesinde hayatta kalır.
6:25
Yani o harcadığınız belleğe kesinlikle
6:27
değiyor. 5. bölüm. Dairesel bağlı
6:30
listeler. Geldik evrimsel sıçramanın o
6:33
son noktasına. Bazen sadece ileriye ya
6:35
da geriye gitmek sorunu çözmez. Bize o
6:38
sonu asla gelmeyen kusursuz sonsuz
6:40
döngüler lazımdır. Buradaki mekanik
6:43
numara gerçekten zekice. Listenin
6:45
kuyruğuna yani o en son düğüme
6:48
ulaştığınızı farz edin. İşte o son
6:50
düğümün next işaretçisi boşluğu
6:53
göstermek yerine usulca gidip listenin
6:56
en başına yani head düğümüne tekrar
6:58
kenetleniyor. Sonuç mu? Çıkmaz sokak
7:01
kavramı tamamen ortadan kalkıyor ve
7:04
kendi içinde dönüp duran, asla bitmeyen
7:06
bir yapı elde ediyoruz. Peki bu sonsuz
7:09
döngü işimize nerede yarayacak? Cevap
7:11
aslında şu an bu incelemeyi izlediğiniz
7:14
cihazın tam kalbinde, işlemcisinde
7:16
yatıyor. Modern işletim sistemleri o
7:18
meşhur CPU Randrobin zamanlayıcısında
7:21
tam da bunu kullanır. Arka planda
7:23
bekleyen onlarca göreve sırayla adil bir
7:26
şekilde ve hiç duraksamadan işlemci
7:28
süresi verebilmek için bu dairesel döngü
7:31
yapısı kelimenin tam anlamıyla hayati
7:33
bir önem taşır. Şimdi onca konuyu geride
7:36
bıraktıktan sonra aklınıza takılan o
7:38
büyük soruyu soralım. Mutlak anlamda en
7:41
iyi veri yapısı hangisi? Cevap aslında
7:44
çok temel bir mühennislik felsefesinde
7:46
saklı. Kusursuz veya en iyi veri yapısı
7:49
diye bir şey kesinlikle yoktur.
7:51
Dizilerin o inanılmaz hızı mı? Tek yönlü
7:54
listelerin o muazzam esnekliği mi yoksa
7:56
dairesel listelerin kesintisiz
7:58
sürekliliği mi? Bunların her biri sizin
8:00
o an çözmeniz gereken spesifik probleme
8:03
uygun birer aletten ibaret. Marifet alet
8:06
çantanızdan hangi soruna hangi aleti
8:08
çıkaracağınızı bilmekte yatıyor. Bu
8:11
incelemede ele aldığımız konuları
8:13
pekiştirmek ve bu döneme ait çıkmış
8:15
soruları deneme sınavı formatında bizzat
8:17
çözüp eksiklerinizi görmek için
8:19
açıklamalar kısmındaki bağlantıdan
8:21
lolonolo.com platformunu ziyaret
8:23
edebilirsiniz. Bitirmeden önce kafanızı
8:25
biraz kurcalamak istiyorum. Eğer insan
8:28
hafızası da bir veri yapısı olsaydı,
8:30
sizce anılarımız anında erişebildiğimiz
8:32
o kusursuz diziler mi olurdu? Yoksa bir
8:35
düğümü koptuğunda uzay boşluğunda
8:36
kaybolup giden tek yönlü listeler mi?
8:38
Düşünmesi bile heyecan verici değil mi?
8:41
Vize sınavlarınızda hepinize şimdiden
8:42
başarılar diliyorum. Bir sonraki
8:44
incelememizde görüşmek üzere.
Jobs & Education

