La traversata pre-ordine è uguale alla prima ricerca della profondità?


13

Mi sembra che l'attraversamento del pre-ordine e il DFS siano gli stessi di entrambi i casi che attraversiamo dalla radice fino al ramo sinistro e di nuovo alla radice e poi ricorsivamente al ramo destro. Qualcuno potrebbe correggermi se sbaglio?

Grazie in anticipo!

Risposte:


10

pre-attraversamento è un attraversamento, visita ogni nodo di un albero binario

Depth First Search è una ricerca, gira attorno a un grafico arbitrario alla ricerca di un determinato nodo (che funziona meglio in un grafico non ciclico (aka albero) è irrilevante)

solo questa è una differenza abbastanza grande da chiamarli nomi di differenza


1
+1, ma vorrei aggiungere che gli attraversamenti pre e post ordine sono solo casi speciali della strategia DFS più generale.
Frank,

1
Attraversare il preordine non significa semplicemente elaborare i nodi prima dei loro figli? Dove dice che i nodi formano un albero binario o addirittura un albero?
Kilian Foth,

@KilianFoth Mi aspetterei che le implicazioni di un nodo con figli (al contrario dei vicini) implicino una struttura ad albero poiché suggerisce una gerarchia di nodi. La parte superiore della gerarchia è la radice dell'albero. Ma posso immaginare che l'attraversamento pre-ordine e quello post-ordine abbiano senso su qualsiasi albero, anche quelli che non sono binari.
YoungJohn,

1

Sì, ma dovrebbe essere il contrario: DFSè simile a PreOrder.
Il termine PreOrderè più rilevante per alberi binari e parser.
E 'utilizzato per confrontare con altri ordini di attraversamento di un albero binario: InOrder, PostOrdere PreOrder.
L'ordinamento topologico è simile all'attraversamento Ordine postale (spingere il nodo in pila dopo aver visitato tutti i nodi adiacenti).


I miei pensieri sono simili a questa risposta. Più specificamente, un preordine è un'implementazione specifica della categoria padre di DFS. La traversata del bambino pre-ordine è rigidamente a sinistra e poi a destra; mentre per il DFS generico (genitore) l'ordine di attraversamento dei bambini non è definito e potrebbe essere di qualsiasi ordine.
Jerred S.

-1

Per attraversare un albero binario in Preordine, vengono eseguite le seguenti operazioni

  1. Visita la radice
  2. Attraversa la sottostruttura sinistra
  3. Attraversa la sottostruttura destra

Cioè nell'immagine qui sotto sarebbe l'attraversamento del pre-ordine, 1,2,3,6,4,5,7,8,9,10,11,12

Nella stessa immagine 1,2,3,4,5,6,7,8,9,10,11,12 sarebbero per DFS

Fonte DFS: http://datastructuresnotes.blogspot.in/2009/02/binary-tree-traversal-preorder-inorder.html

Fonte pre ordine: Wiki

DFS


9
Questo non è un albero binario. È un albero, ma non binario.
Manoj R,

Cosa succede quando "6" ha dei nodi secondari?
Marjan Venema,

Stai chiedendo DFS o pre-ordine?
Zedaiq,

@ManojR Capito dalla fonte sopra menzionata.
Zedaiq,

pre ordine in questo grafico dà la stessa risposta
Charles Chow
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.