CodeBlanks Logo Icon CodeBlanks

std::list

std::list ile çift bağlı listeyi öğrenirsin.

std::list

std::list, çift yönlü bağlı listedir (doubly linked list). push_front başa, push_back sona ekler. front() ilk öğeyi döndürür.

Örnek: std::list<int> l; l.push_front(10); l.push_front(20);. Şimdi liste 20 -> 10 sırasındadır. l.front() 20 döndürür. push_front başa eklediği için son eklenen öğe baştadır. Bağlı liste, ortaya ekleme/silme O(1)'dir.

list vs vector

list, ortaya ekleme/silmede O(1) sunar (iterator verilince). Ancak rastgele erişim YOKTUR: l[2] derlenmez. Sıralı erişim iterator ile yapılır.

vector ise rastgele erişimde O(1) sunar (v[2]), ama ortaya ekleme O(n)'dir. Seçim: sık ara ekleme varsa list, sık rastgele erişim varsa vector. Bellek: vector ardışık; list düğüm düğümdür, ek yük taşır.

Uygulama list ile çalış

std::list<int> l; oluştur. push_front(10) sonra push_front(20) çağır. l.front()'u std::cout ile yazdır.

Başlangıç kodu

main.cpp
#include <iostream>
#include <list>

// liste oluştur ve başa iki öğe ekle

int main() {
    // ilk öğeyi yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <list>

int main() {
    std::list<int> l;
    l.push_front(10);
    l.push_front(20);
    std::cout << l.front() << std::endl;
    return 0;
}

Beklenen çıktı

20

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 push_front çağrısını tamamla

Soru
l.push_front(____);
Cevap
l.push_front(10);

Açıklama: l.push_front(10); listenin başına 10 ekler.

2 list'te hangi işlem YAPILAMAZ?

main.cpp
std::list<int> l;
  • push_front
  • push_back
  • front()
  • l[2] ile erişim Doğru cevap

Açıklama: list'te rastgele erişim yoktur; l[2] derlenmez.

3 Metodu rolüne eşle

Kavram Anlamı
push_front Başa ekle
push_back Sona ekle
front() İlk öğe
size() Öğe sayısı

Orta seviye bölümündeki tüm dersler