la structure de données de file d'attente cyclique []

Les files d'attente sont FIFO (first in first out) linéaire forme, dénommé FIFO.

 

Supposons que les files d'attente circulaires:

Le chef d'équipe: avant

La queue: arrière

Taille maximale: Taille de la file d'attente

File d'attente pleine: (arrière + 1)% de la taille de file d'attente avant ==

longueur de file d'attente commune est calculée: (arrière - taille de file d'attente avant +)% de la taille de file d'attente

Structure de stockage de code d'échantillon

typedef int QElemType; / * type de données dans la file d'attente * /

/ * Structure de stockage séquentiel file d'attente circulaire * /

typedef struct

{

  Date QElemType [MAXSIZE];

  face int / * pointeur de tête * /

  int arrière; / * pointeur de queue, si la file d'attente est vide non, un point sur la position enqueue * /

} SqQueue;

 

/ * Initialiser une file d'attente vide * /

int InitQueue (SqQueue * Q)

{

  Q-> devant = 0;

  Q-> arrière = 0;

  retour OK;

}

 

/ * Trouver une longueur de file d'attente circulaire * /

int QueueLenght (SqQueue * Q)

{

  retour (Q.rear - Q.front + MAXSIZE)% MAXSIZE;

}

/ * Opération Enqueue file d'attente circulaire * /

int Enqueue (SqQueue * Q, QElemType e)

{

  if ((Q-> arrière + 1)% MAXSIZE == Q-> avant) / * * file d'attente déterminée plein /

    retourner erreur;

  Q-> data [Q-> arrière] = e; / * * d'un nouvel élément à la queue /

  Q-> = arrière (Q-> arrière + 1)% MAXSIZE; pointeur / * se déplace l'une après l'arrière * /

                      / * Si vous allez à la dernière rangée de tête * /

  retour OK;

}

/ * File d'attente circulaire Dequeue * /

int Enqueue (SqQueue * Q, QElemType * e)

{

  if (Q-> Q- arrière ==> avant) / * file d'attente d'analyse est vide * /

    retourner erreur;

  * E = Q-> data [Q-> avant]; / * les éléments de la tête à e * /

  Q-> = avant (Q-> avant + 1)% MAXSIZE; / * le curseur se déplace en arrière avant un * /

                      / * Si vous allez à la dernière rangée de tête * /

  retour OK;

}

Je suppose que tu aimes

Origine www.cnblogs.com/guoqingpeng/p/12554254.html
conseillé
Classement