stack(yığın) kullanarak labirent yapımı

dilra_
26-11-2014, 02:07   |  #1  
dilra_ avatarı
OP Taze Üye
Teşekkür Sayısı: 1
6 mesaj
Kayıt Tarihi:Kayıt: Haz 2014

merhaba;
 ENTER -->0   1   1   1   0   0   0   0   0   0

                  0   0   0   1   0   0   0   1   0   0
  
                  0   1   0   1   1   0   0   1   0   0

                  0   1   0   0   1   0   1   1   0   0

                  0   1   0   0   1   0   1   1   0   0

                  1   1   1   0   1   0   1   0   0   0

                 0   0   1   0   0   0   1   0   1   1

                 0   0   1   0   0   0   1   0   1   1

                 0   1   1   0   1   0   1   0   0   0

                 0   0   0   0   1   0   1   1   0   0 --> EXIT

Labirent 10x10'luk bir matris şeklindedir. Matristeki 0 değerleri yol, 1 değerleri duvar kabul edilecektir. çapraz gitmek yasaktır amaç sol üst köşeden başlayarak çıkışa ulaşmaktır.seçilen yollar X harfiyle adlandırılacaktır.
-> X   1   1   1   0   0   X---X---X   0
                "         "   "
      X---X---X   1   0   0   X   1   X   0
              "      "   "
      0   1   X   1   1   X---X   1   X   0
         "           "      "
      0   1   X---X   1   X   1   1   X   0
             "       "      "
      0   1   0   X   1   X   1   1   X   0
             "       "      "
      1   1   1   X   1   X   1   X---X   0
             "       "       "
      0   0   1   X---X---X   1   X   1   1
                   "
      0   0   1   0   0   0   1   X   1   1
                   "
      0   1   1   0   1   0   1   X-- X-- X
                      "
      0   0   0   0   1   0   1   1   0   X --> EXIT

 

Yol Bulma Algoritması: 
1.   Labirentteki mevcut pozisyon olarak, giriş pozisyonundan başla, (0,0), arama listesine mevcut pozisyonu ekle. 
2.   Arama listesinden bir sonraki elemanı çıkar, 
a)   Liste boş ise, labirentte yol yoktur. 
b)   Değilse ve çıkış pozisyonu (m-1), (n-1)'e varılmışsa labirentte bir yol bulunmuştur.
c)   Değilse tüm geçerli üst, alt, sol, sağ komşu pozisyonları arama listesine ekle ve adım 2'yi tekrar et.

şeklinde bir algoritmamız var yığın kullanarak yapılması isteniyor.

yardımcı olursanız çok memnun olurum şimdiden teşekkürler.