Avatar billede mickey777 Nybegynder
16. juni 2001 - 13:43 Der er 4 kommentarer og
2 løsninger

travesering i et binært træ

Hvornår i hvilken forbindelse er det mest optimalt og hensigtmæssigt at anvende enten preorder, inorder eller postorder når man skal travesere et binært træ ???

Angiv helst en forklaring og ungå at henvise til web sider, hvis dette er muligt.
Avatar billede kamikaze Nybegynder
16. juni 2001 - 14:07 #1
Inorder er den traversering der udskriver data i rigtig rækkefølge, og dermed den vigtigste. De to andre henviser til om man udskriver før (pre) eller efter (post) man har undersøgt grenen... Det er ikke så nemt at forklare uden en tegning!!!
Avatar billede kamikaze Nybegynder
16. juni 2001 - 14:12 #2
Et eksempel (pseudo-kode):

UdskrivPre:
  Udskriv r->navn;
  UdskrivPre (r->venstre) // kalder \'UdskrivPre\'
  UdskrivPre (r->højre)  // rekursivt
---
UdskrivIn:
  UdskrivIn (r->venstre)
  Udskriv r->navn;
  UdskrivIn (r->højre)
---
UdskrivPost:
  Udskriv (r->venstre)
  Udskriv (r->højre)
  Udskriv r->navn;
Avatar billede kamikaze Nybegynder
16. juni 2001 - 14:15 #3
SORRY, UdskrivPost skal se sådan ud:

UdskrivPost
  UdskrivPost (r->venstre)
  UdskrivPost (r->højre)
  Udskriv r->navn;
Avatar billede kamikaze Nybegynder
16. juni 2001 - 14:21 #4
Som du kan se, traverserer vi i Post-traversering igennem hele træet (da vi kalder UdskrivPost rekursivt), inden vi udskriver data.

I Pre-order-traversering udskriver vi data først, og traverserer derefter videre.

I In-Order-traversering går vi først SÅ DYBT NED TIL VENSTRE som muligt, og udskriver data. Herefter tester vi højre-siden
Avatar billede kamikaze Nybegynder
16. juni 2001 - 14:23 #5
Har du styr på rekursion???
(ellers må det virke meget forvirende!)
Avatar billede logical Nybegynder
17. juni 2001 - 15:34 #6
Binære træer er altid sorteret, og kan derfor anvendes i den forbindelse.

Preorder giver altid ordnet ascending rækkefølge (stigende sortering)
Postorder giver altid ordnet descending rækkefølge (faldende sortering)

Inorder traverserer træet oppefra og ned. Det kan blandt andet bruges, hvis du vil gemme træet, og kunne oprette det igen senere. Hvis man har gemt pre- eller postorder, vil man når man læser data igen skabe et ubalanceret træ. Hvis man har gemt inorder, bliver træet præcis det samme.

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester