Une file d'attente stocke les données dans l'ordre et contient deux fonctions : push et pop . Poussez les lieux d'un élément à la fin de la file d'attente; pop supprime l'élément à l'avant et le renvoie. Une file d'attente de priorité comporte de façon similaire , avec une différence : push ajoute des éléments à la file d'attente dans un certain ordre . Les tableaux ne sont pas idéales pour une file de priorité , ils manquent de flexibilité , ce qui rend difficile de trier la file d'attente . Cependant, ils sont utiles pour l'apprentissage du concept . Instructions
1
Choisissez le type de données de votre file d'attente prioritaire détient . Si c'est votre première fois que j'écris une file de priorité , choisissez quelque chose de simple , comme un entier.
2
créer un tableau pour servir de votre file d'attente. Si votre type de données est un entier , et que vous souhaitez conserver 10 articles , votre tableau sera créé en utilisant le code comme ceci :
int [ ] arr = new int [ 10];
Gardez à l' Rappellez-vous que 0 est le premier indice d'un tableau. Pour accéder au premier indice de arr, vous souhaitez consulter arr [ 0], et arr [ 9] seraient accéder au dernier indice de arr. Dans ce cas, arr [ 10] provoque une erreur.
3
déterminer la fonction de tri. Il sera utilisé plus tard pour pousser éléments dans le bon ordre. Cette fonction prend deux entrées , puis les compare . Si la première entrée a une valeur plus élevée, la fonction retourne 1 , si les deux entrées ont la même valeur , il renvoie 0 , et si la première entrée a une valeur plus basse, elle retourne -1 . Si c'est votre première fois que j'écris une fonction de tri , et votre type de choix de données est entier , vous devriez commencer par ordre numérique , dans lequel les nombres inférieurs ont une valeur inférieure. Tri par valeur numérique , le code ressemblera à ceci :
if ( premier > seconde) return 1;
if ( premier == seconde) return 0;
if ( premier < seconde) retournera -1 ;
Cela fonctionne aussi pour d'autres types de données numériques , tels que les doubles et les flotteurs . Si vous utilisez des chaînes , vous pouvez trier par ordre alphabétique .
4
démarrer la fonction Push . Cela prend une entrée , le point de pousser sur la file d'attente , et n'affiche rien . En Java , si votre type de données est entier , votre code ressemblera à ceci :
poussée public void (int IN):
Votre code sera similaire dans la plupart des autres langages de programmation , y compris C et C + +. « Void » signifie que cette fonction n'affichera rien .
5
créer un tableau de la même taille que le tableau que vous utilisez pour votre file d'attente. Si votre réseau actuel peut contenir 10 entiers , vous allez créer un tableau comme celui-ci :
int [ ] = new int secondArray [10];
Ce second tableau deviendra plus tard la file d'attente . Si la dernière entrée dans votre tableau est complet , cela signifie que vous avez utilisé chaque entrée dans le tableau , vous devriez plutôt créer un tableau qui est une entrée plus
6
comparer l'entrée de chaque élément. dans votre tableau, en commençant avec la première , en utilisant la fonction de tri . Assurez-vous toujours l'entrée de pousser le premier élément que vous placez dans la fonction de tri. Pour comparer l'apport de poussée et le premier élément de arr, votre code ressemblera à ceci :
genre (en , arr [ 0]);
, "in" est le nom donné à la variable d'entrée à partir de l'étape 4
Si elle retourne -1 , mettez l'entrée de pression dans le deuxième tableau: .
secondArray [0] = in ;
, copier l' élément du premier ensemble dans le second tableau:
secondArray [0] = arr [ 0];
Ensuite, comparez l'entrée de pousser à l'élément suivant dans la première rangée :
< p > trier (en , arr [ 1]);
Continuer ainsi jusqu'à ce que l'entrée de poussée est insérée dans le second tableau ou jusqu'à ce qu'il n'y plus d'articles dans le premier tableau. Dans ce dernier cas , l'entrée du lieu poussée que l'élément suivant dans le deuxième tableau.
7
Copiez le reste des éléments du premier tableau dans le second tableau. Maintenant, l'entrée de cette poussée a été placé dans le deuxième tableau, vous n'avez pas besoin de la fonction de tri . A partir de maintenant , utilisez le second tableau plutôt que le premier , le premier tableau est maintenant à jour. Avec cela, la fonction Push est terminée.
8
écrire la fonction pop . Cela ne prend pas les entrées, mais il affiche un élément de votre file d'attente. Si votre type de données est entier , votre code ressemblera à ceci :
public int pop ()
Le deuxième mot , " int ", signifie que cette fonction va afficher un entier < br . > Photos 9
Créer un second réseau de la même taille que votre gamme actuelle . Ensuite , copier le deuxième élément de la première matrice dans la première entrée de la deuxième matrice , le troisième point à la deuxième entrée de la deuxième matrice , et ainsi de suite , et ainsi de suite , jusqu'à ce qu'il n'y ait plus d'entrées . Ne copiez pas le premier élément de la première rangée . Si votre tableau contient 4 articles, votre code ressemblera à ceci :
secondArray [0] = arr [ 1];
secondArray [1] = arr [ 2];
< p> secondArray [2] = arr [ 3] ;
Rappelons que le premier indice d'un tableau est 0. Cela signifie que secondArray [0] est le premier élément de secondArray et arr [ 1] constitue le deuxième point de arr.
10
renvoyer le premier élément de la première rangée . Votre code ressemblera à ceci :
retour arr [ 0];
avec la fonction Push , le deuxième réseau est désormais votre file d'attente. La fonction pop est maintenant terminée.