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
- Girdiden Komşuluk Listeleri
- Ağırlıksız En Kısa Yollar için BFS
- DFS, Özyineleme ve Yinelemeli Yığınlar
- Bağlantılı Bileşenler ve Taşma Doldurma