Veri yapıları neden C ile öğrenilmeli?
Çünkü C hiçbir şeyi gizlemez. Yerleşik bir liste, map ya da kuyruk olmadığından her yapıyı bellek blokları ve pointer'larla kurarsın; bir yapı da tam olarak budur. Bundan sonra Java'nın HashMap'i ve Python'ın dict'i, bellek yönetimi senin yerine yapılmış aynı fikirlerdir ve maliyetleri üzerine akıl yürütebilirsin.
C ile veri yapılarını öğrenmeden önce neleri bilmeliyim?
Pointer'lar, struct'lar, diziler, bir de malloc ve free. En çok da pointer'lar: bir bağlı liste struct node *next alanlarından oluşan bir zincirdir, bir ikili ağaç da her düğümde bunlardan iki tanesidir. Pointer'lar henüz tam oturmadıysa, Coddy'nin C kursu önce onları ücretsiz olarak anlatır.
C'de bir hash tablosu nasıl yazılır?
Bir kova dizisi, bir anahtarı indekse çeviren bir hash fonksiyonu ve aynı kovaya düşen iki anahtar için bir kuralla: genellikle her kovada bir bağlı liste (zincirleme) ya da bir sonraki boş yuvayı yoklamak (probing). Tablo belirlenen yük faktörünün üzerine çıktığında daha büyük bir dizi ayırır ve her şeyi yeniden eklersin. Birinci adımdaki hash tablosu kursu sıfırdan bir tane kurar.
C kodlama mülakatları için iyi bir dil mi?
Gömülü sistemler ve sistem programlama rolleri dışında pek az aday C ile mülakata girer, çünkü mülakatın ortasında sıfırdan bir hash tablosu yazmak, diğer dillerde hiç harcamadığın bir zamana mal olur. Yine de bilgi tamamen aktarılır ve C++ yalnızca küçük bir adım ötede: aynı sözdizimi, üstüne STL. Yaygın bir yol, yapıları C ile öğrenip mülakat paketlerini C++, Java ya da Python ile almaktır; bu yol üçünü de sunuyor.
Bu yoldaki hangi kurslar C ile anlatılmıyor?
Üç kurs. Dinamik programlama ve Python mülakat serisi Python ile, bit işlemleri ise C++ ile anlatılıyor. Adımlardan sonra listeleniyorlar ve her birinin, onu kendi dilinde açan bir bağlantısı var. C'den gelen biri için üçü arasında en kolay takip edileni bit işlemleri: C++, C'nin &, |, ^, ~, << ve >> operatörlerini olduğu gibi korudu.
Veri yapılarını C ile mi öğrenmeliyim, C++ ile mi?
Yapıları anlamak için C, kullanmak için C++. C'de her şeyi sen kurarsın, bu yüzden pek çok bölüm bu konuyu C ile öğretir; C++'ta her yapıyı bir kez kurar, sonra STL'e uzanırsın, yarışma programcılarının onu kullanmasının nedeni de bu. C ile başlayıp C++'a geçmek hiçbir şey kaybettirmez.