At 5/3/09 01:03 PM, Deathcon7 wrote:
Unfortunately, this is the only list in flash:
http://livedocs.adobe.com/flash/9.0/Acti onScriptLangRefV3/fl/controls/List.html
Linked list is something different.
Well thats pretty shitty...
anyway here is a quick little node class that I whipped up in about 20 minutes that offers what I was talking about.:
package
{
/**
* For some reason the makers of as3 decided not to include a friggin simple linked list class
* that allows traversing and constant time addition and removal operations. Does not include an
* itterator, but its set up so that it doesn't need one.
* @author TheYarrasid
* @version 5/3/2009
*/
public class Node
{
public function Node(aPreviousNode:Node, aObject:Object)
{
previousNode = aPreviousNode;
object = aObject;
if (hasPrevious())
{
previousNode.addNext(this);
}
}
public function addNext(aNextNode:Node):void
{
nextNode = aNextNode;
}
public function addPrevious(aPreviousNode:Node):void
{
previousNode = aPreviousNode;
}
public function hasNext():Boolean
{
return nextNode != null;
}
public function hasPrevious():Boolean
{
return previousNode != null;
}
public function getObject():Object
{
return object;
}
public function previous():Node
{
return previousNode;
}
public function next():Node
{
return nextNode;
}
public function removeNode():void
{
if (hasPrevious())
{
previousNode.addNext(nextNode);
}
if (hasNext())
{
nextNode.addPrevious(previousNode);
}
}
var previousNode:Node;
var nextNode:Node;
var object:Object;
}
}