Forum: Algorithmen, Datenstrukturen und Klassendesign
by Stevie,
27. Jan 2014
Nö, sowohl TStack<T> als auch TQueue<T> werden ganz simpel mit einem Array implementiert und sind somit deterministisch enumerierbar (beides von TEnumerable<T> abgeleitet). Da sich hier im Gegensatz zu einer mit Binärheap implementierten Prioritätsqueue die Elemente bei Einfügen und Entfernen nicht im Array verschieben, gibts kein Problem - außer dass der Stack Enumerator die Elemente umgekehrt...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Stevie,
27. Jan 2014
Zu glauben, dass sich das Verhalten einer for-in Schleife für ein Array ändert ist eher der große Käse. Die Compiler Optimierung des rückwärts zählens auf 0 bei einer for-to Schleife wird auch nur vorgenommen, wenn der Index in der Schleife nicht benötigt wird und dementsprechend die Logik des Programms nicht verändert wird. Das trifft auf eine for-in Schleife wohl auch nur dann zu, wenn man im...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Stevie,
24. Jan 2014
Das ist nicht ganz korrekt. Für einen Menge Elemente, die einen Index Zugriff bieten, liefert auch ein for-in die Elemente in der gleichen Reihenfolge zurück wie mit einem for-to (nicht for-downto!). Durch die Möglichkeit, selber den Enumerator für eine for-in Schleife zu schreiben, verbietet natürlich keiner, die Elemente in einer komplett anderen Reihenfolge (oder sogar non deterministisch)...