¿El equipo de la cadena necesita un nodo principal?

Queue es una tabla lineal especial. Solo permite eliminar en la cabecera de la tabla e insertar al final de la tabla. Es una estructura de datos de primero en entrar, primero en salir.

La cola se puede almacenar en una matriz o en una cadena.

Hay dos tipos comunes de almacenamiento en cadena:

Nodos principales y nodos no principales. Recomendamos la implementación del nodo principal, ya que esto puede simplificar enormemente el procesamiento de la cola.

A continuación, se toma como ejemplo la operación de entrada del equipo para desarrollar más los puntos de vista de este artículo. Supongamos que la estructura básica se define como:

Cuenta pública Zhonglu Xiaoma para obtener más información.

typedef int datatype;
        typedef struct node
        {
                datatype data;
                struct node* next;
        }listnode, *linknode;
        typedef struct
        {
                linknode front;
                linknode rear;
        }linkqueue;

El equipo de la cadena con el nodo líder se une al equipo para lograr:

 void enqueue(linkqueue* q, datatype x){
                linknode p = (linknode)malloc(sizeof(listnode));
                p->data = x;
                p->next = NULL;
                q->rear->next = p;
                q->rear = p;
        }

El equipo de la cadena que se alista sin el nodo principal se realiza:

void enqueue(linkqueue* q, datatype x){
                linknode p = (linknode)malloc(sizeof(listnode));
                p->data = x;
                p->next = NULL;
                if(q->front == NULL){
                        q->front = p;
                        q->rear = p;
                        return;
                }
                q->rear->next = p;
                q->rear = p;
        }

Al comparar los dos programas anteriores, la operación de puesta en cola del equipo de la cadena con el nodo principal solo necesita agregar el nodo recién generado al nodo final. Para las operaciones que no toman la iniciativa, también debe prestar atención a las operaciones de límite. Si es la primera vez que se une al equipo, debe modificar el puntero de la cabeza del equipo. De la misma manera, para las operaciones de quitar de cola, si el último nodo se quita de la cola, debe prestar atención a modificar el puntero de cola. Por lo tanto, sugerimos que la cola de cadena se implemente mejor con el nodo principal.

Supongo que te gusta

Origin blog.csdn.net/qq_30787727/article/details/112203926
Recomendado
Clasificación