En respuesta a los comentarios acerca de que los genéricos son confusos, agregaré el siguiente código: puede haber algunos problemas de sintaxis porque soy un C # no un programador de Java, pero el principio debería ser el mismo.
Nodo de clase pública
{
datos T privados;
Nodo privado nextNode;
public T getData ()
{
devolver datos;
}
- Cómo escribir un algoritmo que tome una muestra aleatoria de tamaño k de una secuencia de n elementos
- ¿Hay un libro que enseñe algoritmos del nivel 0 a los algoritmos de codificación?
- ¿Es normal tener un título en CS y no ser capaz de implementar algoritmos simples?
- ¿El uso de algoritmos en una clave de contraseña típica de 256 bits que siempre está cambiando pero que aún se muestra al usuario (como en un teléfono, por ejemplo) para crear código requeriría supercomputadoras más rápidas disponibles para superarlo?
- ¿Cómo funciona este algoritmo para encontrar los bordes del corte mínimo de un gráfico?
public boolean isLastNode ()
{
return nextNode == nulo;
}
Nodo público getNextNode ()
{
return nextNode;
}
Nodo público (T theData)
{
data = theData;
nextNode = nulo;
}
public void setNextNode (Nodo newNextNode)
{
nextNode = newNextNode;
}
setData público vacío (T newData)
{
data = newData;
}
público vacío appendData (T toAdd)
{
if (isLastNode ())
nextNode = nuevo nodo (toAdd);
más
{
nextNode.appendData (toAdd);
}
}
}
clase pública LinkedList
{
LinkedList pública (comparador EqualityComparer )
{
// Verificar nulo y excepto
igualdadComparador = comparador;
}
public int getPositionOfNodeWithValue (valor T)
{
if (headNode == nulo)
volver -1;
Nodo currentNode = headNode;
int index = 0;
while (currentNode! = null)
{
if (equalComparer.getAreEqual (currentNode.getData (), valor))
índice de retorno;
más
{
índice ++;
currentNode = currentNode.getNextNode ();
}
}
volver -1;
}
Nodo privado headNode;
Private EqualityComparer equalComparer;
}