Merhaba,
D.ersahane'nin ilgili dersi (http://ddili.org/ders/d/gostergeler.html)ndeki örnek programı aşağıya (yatık yazı benim eklememdir) alıntılıyorum:
'(Bu arada unutmadan küçük bir öneri; dersin bölümlerine** bağlantı|anchor** tanımlayabilsek ne iyi olurdu...)'
Alıntı (Göstergeler Dersi):
başınaEkle işlevinde yer alan ilk satırda sağ tarafta dinamik bir Düğüm nesnesi oluşturuluyor. Bu yeni nesne kurulurken, sonraki üyesi olarak listenin şu andaki başı kullanılıyor. Listenin yeni başı olarak da bu yeni düğümün adresi kullanılınca, listenin başına eleman eklenmiş oluyor.
Bu küçük veri yapısını deneyen küçük bir program:
> struct Düğüm
> {
> int eleman;
> Düğüm * sonraki;
>
> this(int eleman, Düğüm * sonraki)
> {
> this.eleman = eleman;
> this.sonraki = sonraki;
> }
>
> string toString() const
> {
> string sonuç = to!string(eleman);
>
> if (sonraki) {
> sonuç ~= " -> " ~ to!string(*sonraki);
> }
>
> return sonuç;
> }
> }
>
> struct Liste
> {
> Düğüm * baş;
>
> void başınaEkle(int eleman)
> {
> baş = new Düğüm(eleman, baş);
> }
>
> string toString() const
> {
> return format("(%s)", baş ? to!string(*baş) : "");
> }
> }
>
> void main()
> {
> Liste sayılar;
>
> writeln("önce : ", sayılar);
>
> foreach (sayı; 0 .. 10) {
> sayılar.başınaEkle(sayı);
> }
>
> writeln("sonra: ", sayılar);
> }
> ```
> **Çıktısı:**
> 'önce : ()
> sonra: (9 -> 8 -> 7 -> 6 -> 5 -> 4 -> 3 -> 2 -> 1 -> 0)'
Yukarıdaki örnekteki **Düğüm** ve **Liste** yapılarını anlamaya çalışıyorum da veri, **Düğüm** yapısı içinde tutulduğuna göre **Liste**'nin tam olarak görevi nedir; ya da **Liste** aslında düğümlerin kendisi olabilir mi? Gerçi hayatta bir çok şey tersine işler (burada verilerin ters belleğe yerleşmesi gibi), belki de burada da bir ters mantık olabilir ama anlamakta zorlanıyorum... :rolleyes:
Yardımcı olursanız sevinirim, teşekkürler...
--
[ Bu gönderi, <http://ddili.org/forum>'dan dönüştürülmüştür. ]