All pastes #450172 Raw Edit

Something

public text v1 · immutable
·published 2007-04-20 17:21 UTC
rendered paste body
class 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;
			}
		}
	}
}