<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Depth First Search Archives - Halil Durmus</title>
	<atom:link href="https://www.halildurmus.com/tag/depth-first-search/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.halildurmus.com/tag/depth-first-search/</link>
	<description>Official Website</description>
	<lastBuildDate>Thu, 10 Dec 2020 13:17:30 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.halildurmus.com/wp-content/uploads/2020/06/1-HalilDurmusRetina-150x150.png</url>
	<title>Depth First Search Archives - Halil Durmus</title>
	<link>https://www.halildurmus.com/tag/depth-first-search/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Derin Öncelikli Arama (Depth First Search)</title>
		<link>https://www.halildurmus.com/2020/12/10/derin-oncelikli-arama-depth-first-search/</link>
					<comments>https://www.halildurmus.com/2020/12/10/derin-oncelikli-arama-depth-first-search/#respond</comments>
		
		<dc:creator><![CDATA[Halil Durmuş]]></dc:creator>
		<pubDate>Thu, 10 Dec 2020 13:17:27 +0000</pubDate>
				<category><![CDATA[Bilgisayar]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[Algorithm]]></category>
		<category><![CDATA[Depth First Search]]></category>
		<category><![CDATA[Derin Öncelikli Arama]]></category>
		<category><![CDATA[DFS]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[stack]]></category>
		<guid isPermaLink="false">https://www.halildurmus.com/?p=3891</guid>

					<description><![CDATA[<p>Türkçesi “ Derinlik öncelikli arama ” şeklinde geçen&#160;DFS&#160;bizim belirlediğimiz bir&#160;kök node’dan başlıyor ve herhangi bir çocuğunu seçiyor. Daha sonra bu çocuktan daha önce gezmediğimiz herhangi bir node’a gidiliyor. Bu seçimlerdeki iki kuralımız var birincisi seçeceğimiz node’a direkt yol olmalı diğeri ise o node daha önce gezilmemiş olmalı. Bu kuralları uygulayarak rekürsif bir şekilde geziliyor. Ancak [&#8230;]</p>
<p>The post <a href="https://www.halildurmus.com/2020/12/10/derin-oncelikli-arama-depth-first-search/">Derin Öncelikli Arama (Depth First Search)</a> appeared first on <a href="https://www.halildurmus.com">Halil Durmus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Türkçesi “ Derinlik öncelikli arama ” şeklinde geçen&nbsp;DFS&nbsp;bizim belirlediğimiz bir&nbsp;kök node’dan başlıyor ve herhangi bir çocuğunu seçiyor. Daha sonra bu çocuktan daha önce gezmediğimiz herhangi bir node’a gidiliyor. Bu seçimlerdeki iki kuralımız var birincisi seçeceğimiz node’a direkt yol olmalı diğeri ise o node daha önce gezilmemiş olmalı. Bu kuralları uygulayarak rekürsif bir şekilde geziliyor.</p>



<p>Ancak öyle bir node’a geliyoruz ki gidilecek yer kalmıyor. Çünkü direkt bağlantımızın olduğu bütün node’lar&nbsp;daha önceden gezilmiş. Böyle bir durumda ise bu node’dan önce en son gezdiğimiz node’a geri dönüyoruz ve başka tercihler var mı diye bakıyoruz. Algoritma rekürsif olarak çalıştığı için her takıldığımız noktada bir üste çıkmamıza olanak sağlıyor. Algoritmamız başladığımız yere geldiğimizde ve hali hazırda bütün çocuklarımızı gezdiğimizde bitiyor.</p>



<h3 class="wp-block-heading">Sözde Kod</h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<pre class="wp-block-code"><code>DFS(G)
   for each u ∈ V do
      color&#91;u] &lt;- white 
      pred&#91;u] &lt;- NIL
   time &lt;- 0
   for each u ∈ V do
      if color&#91;u] = white                      
   then
         DFS-VISIT(G, u)
</code></pre>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<pre class="wp-block-code"><code>DFS-VISIT(G, u)
   color&#91;u]&lt;- gray 
   d&#91;u]&lt;- time &lt;- time + 1
   for each v∈ Adj&#91;u] do
      if color&#91;v] = white    then 
         pred&#91;v] &lt;- u
   	 DFS-VISIT(G, v) 	
   color&#91;u] &lt;- black 
   f&#91;u]&lt;- time &lt;- time + 1
</code></pre>
</div>
</div>



<h5 class="wp-block-heading"> Derin Öncelikli Arama İşlem Adımları:</h5>



<ul class="wp-block-list"><li>Önce bir başlangıç node’u seçilir ve ziyaret edilir.</li><li>Seçilen node’un bir komşusu seçilir ve ziyaret edilir.</li><li>2.adım ziyaret edecek komşu kalmayıncaya kadar tekrar edilir.</li><li>Komşu kalmadığında tekrar geri dönülür ve önceki ziyaret edilmiş node’lar için adım 2 ve 3 tekrar edilir.</li></ul>



<p>Aşağıdaki somut örnek üzerinde söylediklerimizi inceleyelim.</p>



<h3 class="wp-block-heading">Derin Öncelikli Arama Örneği</h3>



<p class="has-medium-font-size"><strong>Aşama 1:</strong></p>



<p>Her bir node&#8217;lar üzerinde gideceği komşuları belirlenir.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="754" height="391" src="https://www.halildurmus.com/wp-content/uploads/2020/10/506-Depth-First-Search-DFS.png" alt="" class="wp-image-3892" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/506-Depth-First-Search-DFS.png 754w, https://www.halildurmus.com/wp-content/uploads/2020/10/506-Depth-First-Search-DFS-300x156.png 300w, https://www.halildurmus.com/wp-content/uploads/2020/10/506-Depth-First-Search-DFS-375x195.png 375w" sizes="(max-width: 754px) 100vw, 754px" /></figure>



<p></p>



<p class="has-medium-font-size"><strong>Aşama 2:</strong></p>



<p>Öncelikle bir root (başlangıç node) seçmemiz gerekir. Root olarak A node&#8217;nu seçiyoruz. A&#8217;nın komşuları F ve G node&#8217;ları var.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="736" height="481" src="https://www.halildurmus.com/wp-content/uploads/2020/10/507-Depth-First-Search-DFS-1.png" alt="" class="wp-image-3897" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/507-Depth-First-Search-DFS-1.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/507-Depth-First-Search-DFS-1-300x196.png 300w" sizes="(max-width: 736px) 100vw, 736px" /></figure>



<p>Stack&#8217;de A eklenmiş olur. A&#8217;nın gidebileceği  F ve G node&#8217;ları vardır. Herhangi bir çocuğundan başlamamız lazım. </p>



<p class="has-medium-font-size"><strong>Aşama 3:</strong></p>



<figure class="wp-block-image size-large"><img decoding="async" width="736" height="481" src="https://www.halildurmus.com/wp-content/uploads/2020/10/508-Depth-First-Search-DFS-2.png" alt="" class="wp-image-3898" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/508-Depth-First-Search-DFS-2.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/508-Depth-First-Search-DFS-2-300x196.png 300w" sizes="(max-width: 736px) 100vw, 736px" /></figure>



<p>F seçelim. F&#8217;den direkt yol olan E node vardır. Böylelikle stacke F node da eklenmiş olur. F node&#8217;nun gidebileceği tek bir yer var. E node&#8217;na gitmiş oluyoruz.</p>



<p class="has-medium-font-size"><strong>Aşama 4:</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="481" src="https://www.halildurmus.com/wp-content/uploads/2020/10/509-Depth-First-Search-DFS.png" alt="" class="wp-image-3899" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/509-Depth-First-Search-DFS.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/509-Depth-First-Search-DFS-300x196.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p>Stacke E node da eklenmiş olur. E&#8217;nin gidebileceği komşuları  C, D ve G nodelarıdır. Örnekte C node&#8217;nu tercih ediyoruz.</p>



<p class="has-medium-font-size"><strong>Aşama 5:</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="481" src="https://www.halildurmus.com/wp-content/uploads/2020/10/510-Depth-First-Search-DFS-1.png" alt="" class="wp-image-3900" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/510-Depth-First-Search-DFS-1.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/510-Depth-First-Search-DFS-1-300x196.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p>Stacke C node da eklenmiş olur. C node&#8217;dan A ve D nodelarına gidebiliriz. A node&#8217;ya gidiyoruz. A node&#8217;na daha önce uğradığımızı fark ederiz. </p>



<p class="has-medium-font-size"><strong>Aşama 6:</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="481" src="https://www.halildurmus.com/wp-content/uploads/2020/10/511-Depth-First-Search-DFS.png" alt="" class="wp-image-3901" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/511-Depth-First-Search-DFS.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/511-Depth-First-Search-DFS-300x196.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p>C node&#8217;dan A ya daha önce uğramış olduğumuz için C node&#8217;ndan D node&#8217;na gideriz. </p>



<p class="has-medium-font-size"><strong>Aşama 7:</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="481" src="https://www.halildurmus.com/wp-content/uploads/2020/10/512-Depth-First-Search-DFS.png" alt="" class="wp-image-3902" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/512-Depth-First-Search-DFS.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/512-Depth-First-Search-DFS-300x196.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p>Daha önce D node&#8217;na uğramadığımız için D node&#8217;nu stacke ekleriz. D node&#8217;ndan gidebileceği komşular C ve F nodelarıdır. İlk tercihimiz. C node olur. Daha önce buraya uğradığımızı fark ederiz.</p>



<p class="has-medium-font-size"><strong>Aşama 8:</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="482" src="https://www.halildurmus.com/wp-content/uploads/2020/10/513-Depth-First-Search-DFS.png" alt="" class="wp-image-3903" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/513-Depth-First-Search-DFS.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/513-Depth-First-Search-DFS-300x196.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p>D node&#8217;ndan gidebileceği bir diğer node F node, orayada daha önce uğradığımızı biliyoruz.</p>



<h5 class="wp-block-heading">Aşama 9:</h5>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="481" src="https://www.halildurmus.com/wp-content/uploads/2020/10/514-Depth-First-Search-DFS.png" alt="" class="wp-image-3904" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/514-Depth-First-Search-DFS.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/514-Depth-First-Search-DFS-300x196.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p>D node&#8217;nun gidebileceği başka hiçbir yer kalmadı.</p>



<p class="has-medium-font-size"><strong>Aşama 10:</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="481" src="https://www.halildurmus.com/wp-content/uploads/2020/10/515-Depth-First-Search-DFS.png" alt="" class="wp-image-3905" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/515-Depth-First-Search-DFS.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/515-Depth-First-Search-DFS-300x196.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p>D node&#8217;nun gidebilecek yeri kalmadığı için stackten onu siliyoruz. Stackten sildiğimiz node peşine hangi node var ise oradan devam edilir.(C node)</p>



<p>C node&#8217;nun komşuları A ve D nodeları idi. A ve D nodelarını daha önce gitmiştik. Başka gidebileceğimiz yer kalmadığı için C node&#8217;nu stackten çıkarıyoruz.</p>



<p class="has-medium-font-size"><strong>Aşama 11:</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="481" src="https://www.halildurmus.com/wp-content/uploads/2020/10/516-Depth-First-Search-DFS.png" alt="" class="wp-image-3906" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/516-Depth-First-Search-DFS.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/516-Depth-First-Search-DFS-300x196.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p>Stackten sildiğimiz node peşine hangi node var ise oradan devam edilir.(E node) E node ile daha önce C node&#8217;na gitmiştik. E node&#8217;ndan gidebileceğimiz komşular D ve G kaldı. D node&#8217;na gittiğimizde, D node&#8217;na daha önceden uğradığımızı görüyoruz.</p>



<p class="has-medium-font-size"><strong>Aşama 12:</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="481" src="https://www.halildurmus.com/wp-content/uploads/2020/10/517-Depth-First-Search-DFS.png" alt="" class="wp-image-3907" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/517-Depth-First-Search-DFS.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/517-Depth-First-Search-DFS-300x196.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p>E node&#8217;ndan gidebileceğimiz G node kaldı. G node&#8217;na daha önceden uğramamışız.</p>



<p class="has-medium-font-size"><strong>Aşama 13:</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="482" src="https://www.halildurmus.com/wp-content/uploads/2020/10/518-Depth-First-Search-DFS.png" alt="" class="wp-image-3908" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/518-Depth-First-Search-DFS.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/518-Depth-First-Search-DFS-300x196.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p>G node&#8217;nu stacke eklenir. G node&#8217;ndan gidebileceğimiz komşu node&#8217;lar yoktur. G node&#8217;nu da stackten silebiliriz.</p>



<p class="has-medium-font-size"><strong>Aşama 14:</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="482" src="https://www.halildurmus.com/wp-content/uploads/2020/10/519-Depth-First-Search-DFS.png" alt="" class="wp-image-3909" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/519-Depth-First-Search-DFS.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/519-Depth-First-Search-DFS-300x196.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p>Stackten sildiğimiz node peşine hangi node var ise oradan devam edilir.(E node) E node&#8217;nun komşuları C, D ve G hepsine uğramış olduk. E node&#8217;nun gidebileceği başka bir yer kalmadığı için E node da stackten sileriz.</p>



<p class="has-medium-font-size"><strong>Aşama 15:</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="482" src="https://www.halildurmus.com/wp-content/uploads/2020/10/520-Depth-First-Search-DFS.png" alt="" class="wp-image-3910" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/520-Depth-First-Search-DFS.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/520-Depth-First-Search-DFS-300x196.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p>Stackten sildiğimiz node peşine hangi node var ise oradan devam edilir.(F node) F node&#8217;nun gidebileceği E node var. E node&#8217;na da daha önce uğradığı için gidecek başka bir yer kalmadı. F node stackten silinir.</p>



<p class="has-medium-font-size"><strong>Aşama 16:</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="482" src="https://www.halildurmus.com/wp-content/uploads/2020/10/521-Depth-First-Search-DFS.png" alt="" class="wp-image-3911" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/521-Depth-First-Search-DFS.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/521-Depth-First-Search-DFS-300x196.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p>Stack&#8217;te sadece A node kalır. A&#8217;nın komşuları F ve G node&#8217;larıdır. F&#8217;ye daha önce uğradığı için G node&#8217;na giden yolu kullanır. </p>



<p class="has-medium-font-size"><strong>Aşama 17:</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="472" src="https://www.halildurmus.com/wp-content/uploads/2020/10/522-Depth-First-Search-DFS.png" alt="" class="wp-image-3912" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/522-Depth-First-Search-DFS.png 736w, https://www.halildurmus.com/wp-content/uploads/2020/10/522-Depth-First-Search-DFS-300x192.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p>G&#8217;ye daha önce uğramış olduğumuz için A stack&#8217;ine geri döner. A node&#8217;nun gidebileceği başka bir node kalmadığı için A node&#8217;nu da stackten sileriz. Böylelikle stackte hiçbir node kalmamış olur.</p>



<p class="has-medium-font-size"><strong>Aşama 18:</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="714" height="453" src="https://www.halildurmus.com/wp-content/uploads/2020/10/523-Depth-First-Search-DFS.png" alt="" class="wp-image-3913" srcset="https://www.halildurmus.com/wp-content/uploads/2020/10/523-Depth-First-Search-DFS.png 714w, https://www.halildurmus.com/wp-content/uploads/2020/10/523-Depth-First-Search-DFS-300x190.png 300w" sizes="auto, (max-width: 714px) 100vw, 714px" /></figure>



<p></p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="has-text-align-center wp-block-heading">Derin Öncelikli Arama </h4>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="300" height="300" src="https://www.halildurmus.com/wp-content/uploads/2020/10/dfs.gif" alt="" class="wp-image-3917"/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="has-text-align-center wp-block-heading"><a href="https://www.halildurmus.com/2020/10/04/enine-arama-breadth-first-search/" target="_blank" rel="noreferrer noopener">Enine Arama</a></h4>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="350" height="350" src="https://www.halildurmus.com/wp-content/uploads/2020/10/bfs.gif" alt="" class="wp-image-3918"/></figure>
</div>
</div>



<p></p>



<p><strong>Kaynakça</strong>: <strong><a href="https://akifhatipoglu.wordpress.com/2014/07/16/depth-first-search-breadth-first-search/">Akifhatipoglu</a></strong>, <strong><a href="https://stanford.edu/~shervine/l/tr/teaching/cs-221/cheatsheet-states-models" target="_blank" rel="noreferrer noopener">Stanford</a></strong>, <strong><a href="https://dergipark.org.tr/en/download/article-file/335278" target="_blank" rel="noreferrer noopener">Dergipark</a></strong>, <strong><a href="https://www.geeksforgeeks.org/depth-first-search-or-dfs-for-a-graph/" target="_blank" rel="noreferrer noopener">Geeksforgeeks</a></strong>, <a href="https://www.tutorialspoint.com/data_structures_algorithms/depth_first_traversal.htm"><strong>Tutorialspoint</strong></a></p>



<p><a href="https://www.youtube.com/watch?v=09_LlHjoEiY" target="_blank" rel="noreferrer noopener"><strong>ALGORITHMS COURSE &#8211; GRAPH THEORY TUTORIAL FROM A GOOGLE ENGINEER</strong></a></p>
<p>The post <a href="https://www.halildurmus.com/2020/12/10/derin-oncelikli-arama-depth-first-search/">Derin Öncelikli Arama (Depth First Search)</a> appeared first on <a href="https://www.halildurmus.com">Halil Durmus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.halildurmus.com/2020/12/10/derin-oncelikli-arama-depth-first-search/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
