0Pricing
Competitive Programming Academy · Ders

Girdiden Komşuluk Listeleri

Yarışmaların verdiği grafiği oluşturun.

Girdiden Komşuluk Listeleri, CoddyKit'te ücretsiz bir Competitive Programming Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Competitive Programming Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Competitive Programming Academy kursu toplamda 4 dersten oluşur.

Grafik Gerçekte Nedir

Grafik, kenar adı verilen çizgilerle birbirine bağlanan ve düğüm adı verilen noktalardan oluşur. Yollarla birbirine bağlanan şehirler, zaten bildiğiniz bir grafik örneğidir. 🗺️

Düğümler ve Kenarlar

Her düğüm bir varlıktır; her kenar da iki düğümün bağlı olduğunu belirtir. Yarışma grafiklerinde düğümler genellikle 1'den n'ye kadar numaralandırılır.

Komşuluk Listesi

Yarışmalarda tercih edilen saklama yöntemi komşuluk listesidir: her düğüm için doğrudan komşularının bir listesini tutarsınız.

adj = [[] for _ in range(n + 1)]

Neden Matris Kullanılmaz

Bir matris n kare bellek kullanır; bu da büyük n değerlerinde hızla büyür. Komşuluk listesi yalnızca var olan kenarları sakladığından büyük girdilerde de uygulanabilir.

İlk Satırı Okuyun

Çoğu girdi iki sayıyla başlar: n düğüm ve m kenar. Kaç kenar beklemeniz gerektiğini bilmek için önce bu sayıları okuyun.

n, m = map(int, input().split())

Her Satırda Bir Kenar

Sonraki m satırın her biri u v çiftini verir. Bu tek kenar, u ile v'nin doğrudan bağlı olduğu anlamına gelir.

u, v = map(int, input().split())

Yönsüz, İki Yön Demektir

Yönsüz bir kenar için bağlantıyı her iki yönde de ekleyin. u'dan v'ye ve v'den u'ya gidebilirsiniz.

adj[u].append(v)
adj[v].append(u)

Yönlü, Tek Yön Demektir

Yönlü bir kenar için yalnızca u'dan v'ye olan bağlantıyı saklayın. Elinizdeki kenar türünü anlamak için problem metnini dikkatle okuyun.

adj[u].append(v)

Bir Döngüde Oluşturun

m kez döngü kurun, her çifti okuyun ve listeleri doldurun. Döngü bittiğinde komşuluk listeniz grafiğin tamamını içerir.

for _ in range(m):
    u, v = map(int, input().split())
    adj[u].append(v)
    adj[v].append(u)

1 Tabanlı ve 0 Tabanlı

Düğümler 1'den başlıyorsa listenizin boyutunu n artı 1 yapın; böylece n dizini geçerli olur. Dizinlemeyi karıştırmak, sessiz hatalara yol açar.

Bir Düğümün Komşularını Ziyaret Edin

Grafik oluşturulduktan sonra gezinmek kolaydır: bir düğümün adj listesini dolaşarak her komşuya tek adımda ulaşabilirsiniz.

for nb in adj[u]:
    print(nb)

Hızlı Kontrol

Yönsüz bir u v kenarı okudunuz. Ne saklarsınız?

Özet

Artık bir grafiği komşuluk listesi olarak oluşturabilirsiniz: n ve m'yi okuyun, kenarlar üzerinde döngü kurun ve grafik yönsüzse iki yönü de ekleyin. 🎉

Sıkça Sorulan Sorular

“Girdiden Komşuluk Listeleri” dersi ücretsiz mi?

Evet — “Girdiden Komşuluk Listeleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Competitive Programming Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Competitive Programming Academy kursu toplamda 4 dersten oluşur.

“Girdiden Komşuluk Listeleri” dersinde ne öğreneceğim?

Yarışmaların verdiği grafiği oluşturun. Competitive Programming Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Competitive Programming Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Competitive Programming Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Girdiden Komşuluk Listeleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Competitive Programming Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Competitive Programming Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Girdiden Komşuluk Listeleri
  2. Ağırlıksız En Kısa Yollar için BFS
  3. DFS, Özyineleme ve Yinelemeli Yığınlar
  4. Bağlantılı Bileşenler ve Taşma Doldurma
← Competitive Programming Academy Sayfasına Dön