AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Rekursive Struktur iterativ abfragen
Thema durchsuchen
Ansicht
Themen-Optionen

Rekursive Struktur iterativ abfragen

Ein Thema von Matze · begonnen am 22. Mär 2010 · letzter Beitrag vom 22. Mär 2010
Antwort Antwort
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#1

Re: Rekursive Struktur iterativ abfragen

  Alt 22. Mär 2010, 14:11
Hey hey ,

so ganz ist mir noch nicht klar, was das Ziel ist. Du hast einen fertigen TOCEntry-Baum und durch den rekursiven Code den homomorphen Section-Baum. Jetzt suchst du zu einer bestimmten Seitenzahl das Section-Objekt, dessen TOCEntry diese PageNum hat? Dann würde ich in AddRecursive gleich noch ein Dictionary<int, Section> mitbefüllen - deutlich einfacher, als im Nachhinein in den Bäumen herumzusuchen .

/add
@alzaimar: An einen Iterator, also prinzipiell die Umwandlung des Baumes in eine leichter durchsuchbare Liste, hatte ich als erstes auch gedacht, aber gerade durch das Zusammenspiel der beiden Bäume gehe ich davon aus, dass die Daten/Beziehungen direkt beim Erstellen besser eingesammelt werden können.
Was du mit 'First/Next/EndOfData()' beschreibst, entspricht übrigens IEnumerable . Und die Pseudo-Koroutinen-C#-Iteratoren machen die Implementierung trivial.

Code:
public void IEnumerable<TOCEntry> Flatten()
{
    yield this;
    foreach (TOCEntry child in SubEntries)
        foreach (TOCEntry item in child.Flatten())
            yield child;
}
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 Uhr.
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