Sinceramente per lista concatenata a puntatori espliciti , non so cosa si intenda di preciso.
Cmq ti posto il codice di quest'ultima cosi ti rendi conto meglio :

codice:
package poo.lista;

import java.util.*;


public class ListaConcatenata<E> implements Iterable<E> {

	private static class Nodo<T> {
		T info;

		Nodo<T> next;

		Nodo(T info) {
			this.info = info;
		}

	}

	private int size;
	private Nodo<E> testa;
	private Nodo<E> coda;

	public void inserisci(E c) {
		Nodo<E> n = new Nodo<E>(c);

		if (testa == null)
			testa = n;// inserisci in testa
		else
			coda.next = n;
		coda = n;
		size++;
	}

	public boolean rimuovi(E c) {
		Nodo<E> pre = null;
		Nodo<E> cor = testa;
		while (cor != null) {
			if (cor.info.equals(c)) {
				if (pre == null)
					testa = cor.next;
				else
					pre.next = cor.next;
				if (cor == coda)
					coda = pre;
				cor.next = null;
				size--;
				return true;
			}

			pre = cor;
			cor = cor.next;
		}

		return false;
	}

	public boolean contiene(E c) {
		Nodo<E> cor = testa;
		while (cor != null) {
			if (cor.info.equals(c))
				return true;
			cor = cor.next;
		}
		return false;
	}

	public int size() {
		return size;
	}

	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder(size * 10);
		sb.append("[");
		Nodo<E> cor = testa;
		while (cor != null) {
			sb.append(cor.info);
			sb.append(" ");
			cor = cor.next;
		}
		sb.append("]");
		return sb.toString();
	}

	@Override
	public Iterator<E> iterator() {

		return new IteratoreLista();
	}

	class IteratoreLista implements Iterator<E> {

		private Nodo<E> cor = null;

		private Nodo<E> pre = null;

		@Override
		public boolean hasNext() {
			if (cor == null)
				return testa != null;
			return cor.next != null;
		}

		@Override
		public E next() {

			if (!hasNext())
				throw new NoSuchElementException();
			pre = cor;
			if (cor == null)
				cor = testa;
			else
				cor = cor.next;
			return cor.info;
		}

		@Override
		public void remove() {
			if (pre == cor)
				throw new IllegalStateException();
			if (cor == testa) {
				testa = testa.next;
			} else {
				pre.next = cor.next;
			}
			if (cor == coda)
				coda = pre;
			cor = pre;
			--size;
		}

	}

}
Tornando al mio problema , ho scritto cosi :

codice:
public class ContenitoreDatiLC<E> extends ContenitoreDatiAstratto<E> {

	class ListaConcatenata<E> implements Iterable<E>{
		
		private static class Nodo<T>{
Però Eclipse mi da errore dicendomi che non posso dichiarare la classe static
(The member type Nodo cannot be declared static; static types can only be declared in static or top level types)