Protocolos de deslizamiento ¿explicación de código?

1

Mientras estudia el protocolo Go back n, en una parte del código C está escrito:

static boolean between(seq _nr a, seq _nr b, seq _nr c)
{
/
* Return true if a <= b < c circularly; false otherwise.*/
if (((a <= b) && (b < c)) || ((c < a) && (a <= b)) || ((b < c) && (c < a)))
return(true);
else
return(false);
}

¿Qué significa esto? ¿Me lo puedes explicar?

    
pregunta user3543012

1 respuesta

3

Es una prueba de contención de buffer de anillo. Hay un número limitado de permutaciones de ordenación de 3 posiciones dentro de un espacio de memoria lineal, y solo 5 de esas permutaciones tienen la posición b después o igual a la posición a y antes de la posición c cuando el espacio lineal está unido en los extremos. La condición en el código simplemente verifica que una de esas 5 permutaciones esté vigente.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas