Emre Sevinç wrote: > Graf üzerinde calismamasi gibi bir durum söz konusu degil bildigim > kadari ile. Bu baglamda, bir graf üzerinden ilerlerken bir agac > olusturmus olursunuz.
Mrb, http://en.wikipedia.org/wiki/Breadth-first_search adresini oneriniz uzerine ziyaret ettim. Bu algoritmayi daha once dosya sistemini gezmek icin kullanmi$tim, bu yuzden ornekler verip deneyimimi aktarabilirim. *function* breadthFirstSearch (Start, Goal) { enqueue(Queue,Start) *while* notEmpty(Queue) { Node := dequeue(Queue) *if* Node = Goal { return Node /*the code below does not get executed*/ } *for each* Child *in* Expand(Node) { *if* notVisited(Child) { setVisited(Child) enqueue(Queue, Child) } } } } Yukarida formal yapisini listeledigim BFS algoritmasinin graphleri gezebilmesini (trees not graphs) saglayan bolumu a$agida listeledim: *for each* Child *in* Expand(Node) { *if* notVisited(Child) { setVisited(Child) enqueue(Queue, Child) } } Buna karsin paul'un kodunda bu mevcut degil. Bu yuzden kod, ba$ladigi yere donebilmekte ve sonsuz donguye girebilmektedir. Anlamakta zorluk cekenler icin gercek bir ornek vereyim istedim. Ornegin bir dizindeyiz ve tum dosyalari sirayla gezmek istiyoruz. "Regular file" olan dosyalari ilk dongude dolasiyoruz, buldugumuz alt dizinleri kuyruk'a ekliyoruz. Burada yapi sadece agac olursa sorun yok. Buna karsin, dosya sistemi, symlink'ler ile graph yapisina da sahip olabilmekte. Bu durumda, herhangi bir symlink bizi basladigimiz yere goturebilir, bu yuzden ziyaret ettigimiz yerleri hatirlamamiz $art. Sonuc olarak, BFS evet, tree ve graph yapilarini gezebilir, buna kar$in, yukarida bahsettigim sebeptendir ki, paul'in BFS uygulamasi yanlizca tree'ler uzerinde calisabilir. Saglicakla, Evrim. _______________________________________________ cs-lisp mailing list [email protected] http://church.cs.bilgi.edu.tr/lcg http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp

