#ifndef LIST_H
#define LIST_H

#include <objc/Object.h>

@interface LinkedList : Object
{
	id head, tail;
	int objectCount;
}

-init;
-free;

-(int)getObjectCount;

-(id)getObjectAtIndex:(int)i;
-(id)insertObject:(id)data atIndex:(int)i;
-(id)appendObject:(id)data;
-(id)prependObject:(id)data;
-removeObjectAtIndex:(int)i;

-(BOOL)isEmpty;


// These are private methods; You should not be concerned with these.
-(id)getNodeAtIndex:(int)i;
-emptyList;
// SO DON'T BE.

@end

#endif

