
public class NoneEmptyStringList implements StringList2 {

	String data;
	StringList2 next;
	
	public NoneEmptyStringList(String d, StringList2 n) {
		data = d;
		next = n;
	}
	
	@Override
	public StringList2 add(String str) {
		return new NoneEmptyStringList(data, next.add(str));
	}

	@Override
	public String get(int i) {
		return (i==0?data:next.get(i-1));
	}

	@Override
	public StringList2 remove(int i) {
		return (i == 0?next:new NoneEmptyStringList(data, next.remove(i-1)));
	}

	@Override
	public StringList2 reverse() {
		StringList2 revTail = next.reverse();
		return revTail.add(data);
	}

	@Override
	public String show() {
		// TODO Auto-generated method stub
		return  "[" + data  + ", " + next.show() + "]";
	}

	@Override
	public int size() {
		
		return 1 + next.size();
	}

}

