File d’attente en ut

File d’attente de l’opération

Ici on l’expliquera un peu sur la mise en œuvre de la file d’attente avec Premtive (priorité).

Sans plus tarder immédiatement écrit à coder eux-mêmes :

Tout d’abord saisir le code ci-dessous et enregistrez-le sous interface.h :

#include

#include

#define Error(Str) FatalError(Str)

#define FatalError(Str) fprintf (stderr, « %s\n », Str), sortie (1)

Puis, enregistrez le code du fichier queue.h ci-dessous :

#ifndef _Queue_h

#define _Queue_h

typedef int ElementType ;

struct QueueRecord ;

typedef struct QueueRecord * en file d’attente ;

File d’attente CreateQueue(int MaxElements) ;

void Enqueue (X ElementType, file d’attente Q) ;

ElementType Front(Queue Q) ;

void Dequeue (Queue Q) ;

void Preemptive (X ElementType, file d’attente Q) ;

void DisposeQueue(Queue Q) ;

void MakeEmpty(Queue Q) ;

int IsEmpty (Queue Q) ;

int IsFull (Queue Q) ;

#endif

Tapez le code ci-dessous, puis enregistrez le fichier sous une implémentation avec queue.c :

#include « queue.h »

#include « fatal.h »

#include

struct QueueRecord {}

int capacité ;

int avant ;

int arrière ;

int taille ;

ElementType * Array ;

};

public static int Succ (int valeur, file d’attente Q) ;

void Enqueue (X ElementType, file d’attente Q) {}

if(IsFull(Q))

Erreur ("file d’attente pleine") ;

else {}

Q -> taille ++ ;

Q -> Array [Q -> arrière] = X ;

Q -> arrière = Succ (Q -> arrière, Q) ;

}

}

File d’attente CreateQueue(int MaxElements) {}

File d’attente Q = NULL ;

Q = malloc (sizeof(struct QueueRecord)) ;

if(Q==null)

Erreur fatale ("espace insuffisant!!!") ;

Q -> Array=malloc(sizeof(ElementType) * MaxElements) ;

Si (Q -> tableau == NULL)

Erreur fatale ("espace insuffisant!!!") ;

Q -> capacité = MaxElements ;

MakeEmpty(Q) ;

Retour à Q ;

}

void Preemptive (X ElementType, file d’attente Q) {}

if(IsFull(Q))

Erreur ("file d’attente pleine") ;

else {}

Q -> taille ++ ;

Q -> Array [Q -> Front] = X ;

Q -> arrière = Succ (Q -> arrière, Q) ;

}

}

ElementType Front(Queue Q) {}

if (!. IsEmpty(Q))

Q -> tableau de retour [Q -> Front] ;

Erreur ("file d’attente vide") ;

return 0 ;

}

Sub Dequeue (Queue Q) {}

if(IsEmpty(Q))

Erreur ("file d’attente vide") ;

else {}

Q -> taille--;

Q avant -> = Succ (Q -> Front, Q) ;

}

}

void DisposeQueue(Queue Q) {}

Si (Q! = NULL) {}

gratuit (Q -> tableau) ;

Free(Q) ;

}

}

public static int Succ (int valeur, file d’attente Q) {}

Si (++ valeur == Q -> capacité)

Valeur = 0 ;

Return Value ;

}

void MakeEmpty(Queue Q) {}

Q -> Size = 0 ;

Q avant -> = 0 ;

Q -> arrière = 0 ;

}

int IsEmpty (Queue Q) {}

Retour à Q -> taille == 0 ;

}

int IsFull (Queue Q) {}

Retour à Q -> taille == Q -> capacité ;

}

Enregistrez le fichier avec le klien.c quatrième nom qui fonctionne comme un client

#include

#include « queue.h »

int main() {}

File d’attente Q ;

int i ;

int n = 20 ;

public static int max_queue_size = 20 ;

Q = CreateQueue(max_queue_size) ;

Preemptive(90,Q) ;

printf("%d\t",Front(Q)) ;

Dequeue(Q) ;

pour (i = 0; i

pour (i = 0; i

{if(Q!=null)}

Si (i %2 == 0) {}

Enqueue(i,Q) ;

}

}

if(i%2==0)

printf("%d,",i) ;

}

}

DisposeQueue(Q) ;

return 0 ;

}

Une fois compilé, il affichera résulte de la somme des numéros pair d’affilée depuis le début de 0 à 18 ans. Résultats de la somme est numéro 90. Nombre est que la série est :

90 0,2,4,6,8,10,12,14,16,18.

Articles Liés

Tendeur de file d’attente de ligne pêche

Tendeur de file d’attente de ligne pêche

c'est une chose j'ai eu l'intention de le faire pendant une longue période. Chaque fois que je suis file d'attente une bobine je me retrouve avec des boulons ou tournevis dans l'étau, et le tambour vibre autour et généralement me rend dingue. C'est p
Comment utiliser la file d’attente à venir sur Neatorama.com

Comment utiliser la file d’attente à venir sur Neatorama.com

dans ce instructable j'exposerai les étapes pour commencer à utiliser la file d'attente à venir ainsi que certaines erreurs communes que garder votre poste d'atteindre la première page.Si vous ne savez pas ce que je parle et pour en savoir plus, visi
Ajout de découpe Laser avec défilement

Ajout de découpe Laser avec défilement

ce Instructable va marcher votre à travers les étapes de la création d'une plate-forme de défilement papier à utiliser dans une machine de découpe laser. Cela vous permet de couper un motif continu en une longue bande de papier qui ne pouvait se fair
Fil magnétique

Fil magnétique

fil magnétique est utilisé par des amateurs et des ingénieurs pour bobines, inductances, transformateurs et solénoïdes, et il n'est pas bon marché pour acheter à $25 à 60 dollars la livre. C'est le fil que j'ai rassemblé en un week-end pour aucun coû
LED sans fil facile

LED sans fil facile

Oui ! C'est juste, cette instructable vous guidera pour créer votre propre LED sans fil.Cette instructable est inspiré de : Wireless L E D par neelandan ! Merci pour ce grand instructable !Cette version utilise un transistor de commutation de fréquen
Utilisant la CIB pour le cryptage sans fil avec Intel Galileo

Utilisant la CIB pour le cryptage sans fil avec Intel Galileo

IntroductionCe Instructable vise à illustrer comment configurer et utiliser IPC (interprocess communication) entre un script Python et l'esquisse en cours d'exécution sur la carte Intel Galileo. En plus de fournir le code source je serai aller sur le
10 vie Hacks que vous devez savoir pour un été mieux !

10 vie Hacks que vous devez savoir pour un été mieux !

Voici 10 amazing trucs et astuces, vous pouvez utiliser pour impressionner vos amis et faire de votre été un peu plus facile.J'avais vu des photos de quelques idées utiles sur l'internet, mais pas de vidéos.  J'ai fait cela dans l'espoir que chacun d
Clicker Training pour les chiens (ou n’importe quel Animal!)

Clicker Training pour les chiens (ou n’importe quel Animal!)

Ce qui est formation clicker ?Un clic est un bruit utilisé pour marquer un événement. C'est comme dire « Bon » seulement il est plus audible discrètes et cohérente, ce qui en fait facilement reconnaissable à votre chien. Lorsque vous avez en main un
Pays Kitsch/Primitive suspendre mangeoire

Pays Kitsch/Primitive suspendre mangeoire

Cela va être un projet simple faire bon marché Noël présenteSur une échelle de difficulté, je dirais que c'est un projet facile adult. J'aurais probablement pas dû à l'incendie et potentiel de verre brisé les enfants d'essayer ce sans aide.1 pièces g
Serveur Web Python pour votre Raspberry Pi

Serveur Web Python pour votre Raspberry Pi

Remarque : Si vous voulez seulement un serveur web qui ne nécessite pas de Python, consultez ce tutoriel, que j'ai fait pour un serveur web super facile pour le Raspberry Pi.Vous savez certains Python de base ou vous voulez en apprendre un peu et vou
Lampe de bureau pour le générateur Moving Picture

Lampe de bureau pour le générateur Moving Picture

IntroductionJe pensais à une façon cool à la lumière de ma chambre et parce que les années 70 ont disparu depuis longtemps de la lampe le plus impressionnante prochaine après lampe à lave est la lampe de bureau de générateur de Moving Picture.Βasical
Capteur de niveau de la piscine

Capteur de niveau de la piscine

Il y a quelques années, nous avons emménagé dans une maison avec une belle petite piscine. C'est un vieux, construit quelque temps dans les années 70. J'ai remplacé les pompes et mis à jour le contrôleur de la piscine mais maintien de la piscine à un
Multiprise intelligente basée sur Beaglebone Black et OpenHAB

Multiprise intelligente basée sur Beaglebone Black et OpenHAB

!!!!! Jouer à tension de secteur (110/220V) est dangereux, s'il vous plaît faire tres tres attention!!!Il y a quelques conceptions existantes de bande de puissance intelligente basées sur « Raspberry Pi » et deux Arduinos, qui est indiqué dans l'imag
Monopodes bricolage

Monopodes bricolage

Si vous avez aimé cette I'ble, vous pouvez voter pour moi. Si vous n'avez pas, Zut, je vais encore prendre votre vote. :)Le cadeau a été donné-away. S'il vous plaît restez à l'écoute de Instructables future de la mine pour plus de cadeaux.Dans ce Ins