public class CircularLinkedList<E> {
	
	public int _size;
	public ListNode<E> _head;
	public ListNode<E> _tail;
	
	public void addFirst(E element) {
		_size++;
		_head = new ListNode<E>(element, _head);
		if (_tail == null)
			_tail = _head;
		_tail.setNext(_head);
	}
	
	public String toString() {
		StringBuilder buffer = new StringBuilder();
		buffer.append("[");
		if (_head != null) {
			ListNode<E> curr = _head;
			while (curr != _tail) {
				buffer.append(curr.getElement() + ", ");
				curr = curr.getNext();
			}
			buffer.append(_tail.getElement());
		}
		buffer.append("]");
		return buffer.toString();
	}
	
	public void swap(int index) {
		/* TODO : UNDONE */
	}
	
	public static void main(String[] args) {
		CircularLinkedList<Character> list = new CircularLinkedList<Character>();
		for (int offset = 12; offset >= 0; offset--) // 13 chars
			list.addFirst((char)('a' + offset));
		System.out.println(list.toString());
		list.swap(15);
		System.out.println(list.toString());
	}
}

