Javascript Linkedlist Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Hocalarım JavaScript'de ArrayList<Object> kullanımı gibi bişey bulamadığım için kendi LinkedList'imi yapayım dedim fakat bir yerde kafayı yedim...

    Silme Fonksiyonum şu ;

     Liste.prototype.Sil=function (KullaniciAdi) {
          var Bas=this.Bas;
          var Etkin;
          if(Bas.KullaniciAdi.toLowerCase()==KullaniciAdi.toLowerCase())
          {
            if(Bas.Sonraki==null)
            {
              this.Bas=null;
            }else{
              this.Bas=Bas.Sonraki;
            }
    
          }
          while(Bas!=null)
          {
            if(Bas.KullaniciAdi.toLowerCase()==KullaniciAdi.toLowerCase())
            {
              console.log(Bas.Sonraki);
              if(Bas.Sonraki==null) {
                console.log("null");
                Etkin.Sonraki = null;
              }
              else {
                console.log("Değil");
                Etkin.Sonraki = Bas.Sonraki;
              }
              return;
            }
            Etkin=Bas;
            Bas=Bas.Sonraki;
          }
        };
        

    Burada Sildiğim zamanki Etkin.Sonraki=Bas.Sonkrai; Kod bloğunda hata veriyor. Bas.Sonraki bulunamadı diyor. Ama Üst tarafta ben Bas.Sonraki'yi Log çıktısı olarak alıyorum olan bişeyi yok olarak gösteriyor ..

    Ben mi yanlış yapıyorum dedim dün gece 5 gibi bıraktım sabah 11 gibi uyandım saat 1.5 olmuş halen bakıyorum yok..

    JavaScript taraflı mı çözemedim...

    Sorunum nedir ?

     

    MhmdAlmz tarafından 19/Oca/17 12:28 tarihinde düzenlenmiştir

    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    Koddaki hatayı anlamadım ama. https://code.tutsplus.com/articles/data-structures-with-javascript-singly-linked-list-and-doubly-linked-list--cms-23392

    şu var hocam.


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Terror , hocam teşekkür ediyorum. Mantığı zaten bildiğim için kendi kodumu yazıyorum muhtemelen javascript'de olan bişeyden kaynaklanıyor


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    motka
    motka's avatar
    Kayıt Tarihi: 28/Ekim/2012
    Erkek

    JavaScript bilmiyorum fakat Etkin değişkenine başlagıç değeri vermediğinden dolayı hata veriyor olabilir mi?

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Etkin değeri zaten bas null olmadığı sürece atanıyor hocam onda sıkıntı yoky


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek

    return; kaldırıp, dener misin?

    bir de while kullanımında sorun olabilir, oraya bakmak lazım, while hakkında malesef bilgim yok.

    RockZs tarafından 19/Oca/17 18:34 tarihinde düzenlenmiştir
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    kvasir
    kvasir's avatar
    Kayıt Tarihi: 24/Ağustos/2005
    Erkek

    Kendi prototipini yapman güzel birşey,

    fakat neden ayrıca ArrayList<Object> yaptın ?

    Javascript'te herşey objedir, array'ler dahil. Fonksiyonlar bile. O yüzden Object list tutmak bana çok mantıksız gözüktü, JSON neden var diye düşünüyorum.

    Ekstra arama, sorting özellikleri falan ekliyorsan bilemem, direk temel Array gibi elementlerin protitplerine de ekleyebilirsin.

    Ben olayı anlamadım. 

    Syntatic sugar desem, paradigma uymuyor.

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    @kvasir , 

    Hocam Ben'im html içerisinde gömülü divlerim ve o divlere ait kullanıcıalrın bilgileri var .. Bu bilgiler sürekli değişkenlik gösteriyor .. Bunu da bir Obje haline getirip kontrolünü düzgün bir şekilde yapmak istiyorum..

    Yani

    Liste.AramaYap("MhmdAlmz").IsminiDegistir("Deneme123"); dedigim zaman o div içerisindeki MhmdAlmz ismini Deneme123 olarak değiştirecek... Mesela kaç kullanıcı var dedigim zaman divleri saymak yerine Liste.KisiSayisi dedigimde vericek... Daha sonra birini sildikten sonra divID vs aramadan gelip Liste.Sil("MhmdAlmz") dedigimde o class'ı (Obje) silecek. ek larak da divi sileceğimm. 

    Hem düzenli kod. Hemde daha hızlı olacak. ID'ye göre B- Tree yapmayı düşünüyorum ... daha sonra da full balanced yapmayı düşünüyorum Ağaç dengesizliklerini giderip... Bu sayede Sayfaya hem hakim hemde daha hızlı işlem yapacağım... Bu yüzden kullandım..

    Ama işte herşey okey iken Silmede Sıkıntı cıkarıyor..

    if(!Bas) ile if(Bas!=null) arasında bi fark var ama ne çözemedim.. :(((


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    mrbrs
    mrbrs's avatar
    Kayıt Tarihi: 22/Ağustos/2005
    Erkek

    Neden var Etkin = this.Bas ile başlamıyorsun biraz kafam karıştı ama işine yarabilecek kaynak şurda var.

    http://cdn.tsq.me/ebook/Data%20Structures%20and%20Algorithms%20with%20JavaScript.pdf 

    İngilizce sorun mu bilmiyorum ama sayfa 80-81 e baksan çok güzel anlaşılıyor mantık

     

    mrbrs tarafından 19/Oca/17 22:00 tarihinde düzenlenmiştir
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Hocam mantığı biliyorum da :( Sonraki null diyor bana mantıkta da sıkıntı olduğunu düşünmüyorum tamamen dilden kaynaklanan bir yanlış diye düşünüyorum..


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    kvasir
    kvasir's avatar
    Kayıt Tarihi: 24/Ağustos/2005
    Erkek

     

    ilk dikdörtgende objenin "Bas" property'sini "Bas.Sonraki" yapıyorsun, ondan önce "var Bas=this.Bas" yapıp ana objeden veri çektiğin için,

    if'in içinde "Bas.Sonraki" üzerinden sorgu yapmak "Bas.Bas.Sonraki" üzerinden sorgu yapmak demek.

    Bu hatalara gelmemek için tip kontrolü yap, typeof'la, constructor veya prototype get ederek. En azından nerede hata yaptığını daha iyi görürsün.

    Ayrıca tip kontrolü yaparken == veya != değil === veya !== kullan çünkü kesin olarak ya o tiptir ya da değil, o yüzden daha kesin === operatürünü kullanmalısın.

Toplam Hit: 1476 Toplam Mesaj: 18
linkedlist