Something
public text v1 · immutableclass LinkedList(T)
{
private:
struct LinkNode
{
T data;
LinkNode *next;
LinkNode *prev;
}
LinkNode head;
public:
this()
{
head.next = &head;
head.prev = &head;
}
void add( T data )
{
LinkNode *n = new LinkNode;
n.next = &head;
n.prev = head.prev;
n.next.prev = n;
n.prev.next = n;
n.data = data;
}
void rem( T data )
{
for ( LinkNode *n = head.next; n != &head; n = n.next )
{
if ( n.data == data )
{
n.prev.next = n.next;
n.next.prev = n.prev;
delete n;
break;
}
}
}
}