Bence, bu şeyleri anlamamayı kabul etmemelisiniz, çünkü bunlar gerçekten temeldir. Bununla birlikte, onları anlamadığınız için kendinizi kötü hissetmeniz gereken bir şey yoktur. Bağlantılı bir listeyi bir çocuğa açıklayabilirsiniz. Öyleyse, öğretmeniniz bunları size açıklayamazsa, bu onların hatasıdır. Bu yüzden endişelenmek için zaman harcamamalısınız, bunun yerine size açıklayabilecek insanları bulmaya çalışın. Genellikle bir öğrenci tam zamanlı bir akademisyenden çok daha iyi bir öğretmendir.
Trenleri Düşün
Her taşıyıcının bir veri parçası içerecek kadar yeterli kapasiteye sahip olduğu bir dizi demiryolu taşıyıcınız olduğunu düşünün. Her taşıyıcının ucunda başka bir taşıyıcının önüne takılabilen bir çeşit kanca bulunur.
Bu aslında size bağlantılı bir liste verir:
- boş liste: araba içermeyen tren (ve bu nedenle veri taşımayan)
- bir eleman ekleme: trenin önündeki elemanı içeren yeni bir araba ekleyin ve trenin geri kalanına asın
- bir elemanın çıkarılması: elemanı içeren taşıyıcıyı bulun. Çıkarın (burada bir vince ihtiyacınız olabilir :)), taşıyıcıyı önce taşıyıcıyla kancaya takın.
- bir elemanın değiştirilmesi: eski elemanı içeren taşıyıcıyı bulun. Eski elemanı yeni elemanla değiştirin.
- bir elemanın hemen arkasına eklenmesi: eklemek istediğiniz elemanı içeren taşıyıcıyı bulun. Bundan sonra yeni bir şaryo takın, buna göre kancalanır (trenin parçalanmasını istemiyoruz) ve yeni elemanı içine yerleştirin.
Bunun aksine, bir diziyi, herhangi bir şekilde yeniden düzenlenemeyen belirli sayıda taşıyıcıya sahip bir tren olarak düşünebilirsiniz. Yapabileceğiniz tek şey, içindeki verileri değiştirmek. Bu model ayrıca dizilerin sahip olduğu birçok sorunu da açıklar:
- Bir öğeyi diğerinden önce eklemek istiyorsanız, aşağıdaki öğelerin tümünü bir sonraki taşıyıcıya taşımanız gerekir.
- Bir elemanı kaldırmak istiyorsanız, aşağıdaki tüm elemanları bir satır başı öne taşımanız gerekir.
- Daha fazla arabaya sahip bir trene ihtiyacınız varsa, yeni bir tren inşa etmeniz gerekecektir, çünkü sadece bir taşıyıcının başına geçemezsiniz. Öte yandan, bir dizideki taşıyıcıları bulmak çok daha kolaydır, çünkü onları kalıcı olarak numaralandırabilirsiniz (sıraları asla değişmez).
Yığına gelince: "Yığın" bir fikirden daha az bir veri yapısıdır. Yığın fikri, bir kitap yığını gibi davranmasıdır. Kitapları yalnızca yığının üstüne koyabilirsiniz ve üstteki kitabı yalnızca yığının dışına çıkarabilirsiniz (en azından kitaplar yeterince ağırsa).
Bununla birlikte, arabalardaki verileri kitap olarak ve en çok ilk satırdaki kitap yığının tepesi olarak düşünürseniz, bağlantılı bir liste yığın olarak kullanılabilir.
Umarım bu size yardımcı olmuştur. Belki de olmadı. Belki daha görsel bir türsünüz. Bu durumda, görsel açıklamalar yapmakta ve size açıklamakta iyi olan birini bulmanızı öneririm. Uzun sürmeyecek, ama kesinlikle buna değecek.
Şimdi bununla mücadele etmek sorun değil. Ancak sadece kabul etmek, uzun vadede bir seçenek değildir.