Djup-först-sökning

Binärt träd med 9 noder och höjden 4.

Djup-först-sökning (dfs) är en strategi för att traversera ett träd (en hierarkisk datastruktur där varje nod kan ha noll eller flera underordnade noder) där man följer varje gren i trädet till dess yttersta nod (dess löv) innan man backar upp i hierarkin och väljer nästa gren att undersöka.

I vilken ordning grenarna i trädet genomsöks definieras av implementationen. I bilden till höger kommer man med djup-först sökning från roten (nod 8) att i tur och ordning undersöka noderna enligt någon av följande ordningar:

  • 8, 3, 1, 6, 4, 7, 10, 14, 13;
  • 8, 10, 14, 13, 3, 1, 6, 4, 7;
  • 8, 3, 6, 4, 7, 1, 10, 14, 13;
  • osv

Strategin kan vara värdefull i många sammanhang och anledningen att välja den beror naturligtvis på vilken data som trädet organiserar. I till exempel ett beslutsträd (ett träd som spänner upp tänkbara konsekvenser av en serie beslut, t.ex. drag i ett schackparti eller en serie strategiska affärsbeslut) utforskar man med denna strategi den yttersta konsekvensen av en viss serie beslut innan man tittar på alternativa beslut. Med djup först sökning går det alltid att hitta ett per definition framgångsrikt resultat (till exempel vinst i ett schackparti) om ett sådant finns i trädet, men det finns ingen garanti för att hitta en optimal väg till detta resultat.

Se även

Media som används på denna webbplats

Question book-4.svg
Författare/Upphovsman: Tkgd2007, Licens: CC BY-SA 3.0
A new incarnation of Image:Question_book-3.svg, which was uploaded by user AzaToth. This file is available on the English version of Wikipedia under the filename en:Image:Question book-new.svg
Binary search tree.svg

Created by Derrick Coetzee in Adobe Illustrator. This SVG, based on the original .ai file, supplants the PNG Image:Binary_search_tree.png.