Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi "Invalid pointer operation" - Stack (https://www.delphipraxis.net/166040-invalid-pointer-operation-stack.html)

himitsu 27. Jan 2012 22:15

AW: "Invalid pointer operation" - Stack
 
Liste der Anhänge anzeigen (Anzahl: 1)
Stichwort: [GOOGLE]binär Bäume[/GOOGLE]

Ganz einfach gesagt.

Willst du in einer Liste suchen, dann mußt du diese Liste durchsuchen.
Im schlimmsten Fall mußt du also jeden einzelnen Eintrag prüfen, wenn sich das Gesuchte ganz am Ende versteckt.
Im Durchschnitt muß man also die Hälfte aller Eintrage absuchen, um was zu finden.

Bei einer Hashlist wird ein Hash ('ne Art Quersumme) über die Einträge gebildet. Aus dem Gesuchten bildet man ebenfalls einen Hash.
Nun muß man nur noch den Hash finden und da der Hash kleiner ist, muß man weniger vergleichen, aber muß immernoch jeden einzelnen Eintrag durchsuchen, auch wenn das nun schneller geht.

Der BTree, bzw. der binäre Baum ist eine Art Pfad.
Man ordnert die Einträge dort ein und kann sie dann schneller finden, da man nicht alles durchsuchen muß.
Für den Apfel reicht z.B. schon ein einziger Vergleich.
Code:
      #                      #       #
     / \                     #      / \
    A  B----                #     A  B----
   /   / \    \              #    /   / \    \
  P  A  L   U            #   #   A  L   U
  |   |   |    |             #       |   |    |
  F  U  U   S---          #       #   #    S---
  |   |   |   / \  \         #               / \  \
  E  M  M #  C  S       #              #  C  S
  |   |   |     |   |        #                 |   |
  L  #   E    H  i       #                 #   #
  |       |     |   |        #
  #       #     #   #        #
                             #
  #Apfel    #Bus           #   #Apfel    #Bus
      #Baum    #Busch      #       #Baum    #Busch
          #Blume   #Bussi  #           #Blume   #Bussi
[edit]
Wäre es nicht toll, wenn die Codeausrichtung irgendwann mal funktionieren würde?

nahkillo94 27. Jan 2012 22:42

AW: "Invalid pointer operation" - Stack
 
wow! Du machst ganz schön großen Aufwand um mir das zu erklären. :)

Also das mit der Hashliste klingt machbar. Aber das mit dem Baum nicht. Das suchen im Baum würde dann wahrscheinlich auf Backtracking hinauslaufen.

jaenicke 28. Jan 2012 06:59

AW: "Invalid pointer operation" - Stack
 
Zitat:

Zitat von nahkillo94 (Beitrag 1148039)
Aber das mit dem Baum nicht. Das suchen im Baum würde dann wahrscheinlich auf Backtracking hinauslaufen.

Nein, eben genau nicht. ;-)
An jeder Kreuzung schaut man welches die richtige ist und kommt so viel schneller zum Ergebnis. ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz