|
sierkt |
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 31.10.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.11.2009, 21:31
Titel: Linked List
|
|
Hallo,
brauche mal wieder Hilfe von den Experten hier.
Ich habe eine Klasse "Punkt" die Objekte erzeugt. A, B, C, etc.
Diese erzeugten Objekte stellen Knoten in einer Linked List dar. Die Knotenpunkt Objekte habe ich mit Hilfe der MATLAB "dlnode" Klasse erzeugt und danach anhand der Funktion
B.insertAfter(A) etc.
in Reihenfolge gebracht. Somit hat jedes Objekt Informationen zum nächsten bzw. vorheringen Objekt in der Linked List.
A.Next = B
B.Prev = A
B.Next = C etc.
Ist es möglich, diese Objekte in der Linked List zu zählen und jedem Objekt eine Laufnummer zu geben?
z.B.:
Objekt A ist Element 1, Objekt B ist Element 2, Objekt C ist Element 3. Anzahl Objekte ist 3.
Gruß,
Sierk
|
|
|
|
|
Nicolas S. |
Forum-Century
|
|
Beiträge: 146
|
|
|
|
Anmeldedatum: 15.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014a/b
|
|
|
|
|
|
Verfasst am: 19.11.2009, 10:02
Titel:
|
|
Hallo,
ja ist es, aber nicht besonders einfach:
Ein Objekt kennt seinen Vorgänger. Der Vorgänger kennt seinen. Der letzte Vorgänger hat keinen mehr.
Man kann eine rekursive Funktion implementieren, die die Anzahl der Vorgänger ermittelt. Die Anzahl der Vorgänger die die Anzahl der Vorgänger des Vorgängers plus eins. Ist obj.Prev leer ist die Anzahl der Vorgänger Null.
Wenn Deine Objekte einen Ring bilden, weil ein Nachfolger eines Nachfolgers ein Vorgänger ist gibt das allerdings einen lustigen Absturz in Matlab (R2009a) oder einen Überlauf mit Fehlermeldung (R2009b), wenn man das nicht abfängt. (Maximale Rekursionstiefe festlegen)
EDIT: Als rekursive Funktion bietet sich eine GET-Funktion für eine dependent Property "NumPrev" oder so an.
_________________
--
The programmer suggested it.
|
|
|
Titus |
Forum-Meister
|
|
Beiträge: 871
|
|
|
|
Anmeldedatum: 19.07.07
|
|
|
|
Wohnort: Aachen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.11.2009, 10:49
Titel:
|
|
Hallo,
wobei die Funktion nicht rekursiv sein muss, oder? Eine Schleife a la
müsste es auch tun. Das würde auch eine Liste mit mehr als 500 Elementen erlauben (default Rekursionstiefe). Hilft allerdings nicht bei dem von Nicolas erwähntem Ring .
Titus
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|