Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Zeilennummer eines Listenelements in einer hierarchischen Liste ermitteln » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Der letzte Beitrag
Donar Zeilennummer eines Listenelements in einer hierarchischen Liste ermitteln

Guten Tag,

es soll ein Teil einer dynamisch veränderbaren hierarchische Liste auf dem Bildschirm angezeigt werden, hübsch eingerückt nach Hierarchiestufe.

Es seien insgesamt 1000 Listeneinträge vorhanden, alles hübsch doppelt verkettet mitsamt Bezug nach oben und Bezügen nach unten. Nur ein kleiner Ausschnitt davon soll jeweils angezeigt werden, sagen wir, es zeige 10 Elemente an.

Es wird jetzt ein beliebiger Listeneintrag verändert. Wie stelle ich am zweckmässigsten fest, ob die Veränderung einen angezeigten Eintrag (idealerweise: und den wievielten davon) betrifft?

Mir fallen zwei Verfahren ein, beide unbefriedigend irgendwie.

(1) Jedem Listeneintrag wird als Eigenschaft eine Zeilennummer zugeordnet. Vorteil: die Entscheidung ist trivial. Nachteil: Wird ein Eintrag eingeschoben, muss der gesamte Teil ab dieser Zeilennummer neu durchnummeriert werden, wenn z.B. vor dem augenblicklich ersten Element ein neuer Eintrag hinzugefügt wird, sind 1000 Updates erforderlich.

(2) Die Position wird mittels Backtracking zur Zeit der Anfrage ermittelt. Vorteil: Keine Neunummerierungen erforderlich. Nachteil: Das Backtracking benötigt unter Umständen ziemlich viel Zeit: wird das tausende Element verändert, darf die gesamte Liste zurückverfolgt werden.

<strikethrough>An beiden</strikethrough> Am ersten Verfahren auch positiv ist, dass die Zeilennummer des ersten angezeigten Eintrages gespeichert und für Vergleiche herangezogen werden kann (einfache Möglichkeit "den wievielten" zu ermitteln).

Frage in die Runde: Wie geht der gewiefte Theoretiker da vor?