Ejercicios de conjunto de problemas de "Estructura de datos (segunda edición)" de la edición de la Universidad de Zhejiang -3.12

Ejercicio 3.12 Cola cíclica alternativa (20 punto (s))

Si se utiliza una matriz cíclica para representar la cola, y solo el puntero principal de la cola se establece en Frente, el puntero final no se establece en Posterior, pero se establece un Conteo separado para registrar el número de elementos en la cola. Escriba un algoritmo para implementar las operaciones de poner y quitar de la cola.

Ejemplo:

bool AddQ( Queue Q, ElementType X )
{
    if(Q->Count == Q->MaxSize) {
        printf("Queue Full\n");
        return false;
    }
    Q->Data[(Q->Front+Q->Count++)%Q->MaxSize] = X;
    return true;
}
ElementType DeleteQ( Queue Q )
{
    ElementType res;
    if(Q->Count == 0) {
        printf("Queue Empty\n");
        return ERROR;
    }
    res = Q->Data[Q->Front];
    Q->Front = (Q->Front+1) % Q->MaxSize;
    Q->Count--;
    return res;
}

Ideas:

Use el recuento para calcular la parte trasera

 

Supongo que te gusta

Origin blog.csdn.net/u012571715/article/details/113034733
Recomendado
Clasificación