2017-07-06 1 views
-3

J'étudie cette partie des structures de données dans java et je suis encore confus sur la façon dont je les utilise à la place des structures de données et pourquoi je les utilise?!Pourquoi utilisons-nous la pile et la file d'attente en Java?

+0

1. Que voulez-vous dire "instad of data structures"?Ils sont un moyen de structurer les données. 2. "Pourquoi est-ce que je les utilise" <- Comment devrions-nous le savoir? Si vous ne les utilisez pas, ne les utilisez pas. –

+0

Je vote pour cette question hors sujet car elle n'est liée à aucun type de programmation où l'utilisateur demande à lui trouver un tutoriel –

+0

Votre question n'est pas claire. Mais c'est aussi trop général; une réponse serait un chapitre de manuel. Quelle (s) référence (s) vous a-t-on dit d'utiliser? Quel est le point exact d'une référence sur laquelle vous êtes coincé? – philipxy

Répondre

0

Les files d'attente et les piles peuvent être utilisées lorsque vous devez travailler avec des données dans l'ordre premier entré premier sorti/premier entré, dernier sorti et que vous souhaitez pouvoir supprimer tous les éléments que vous avez interrogés de la file d'attente/sorti de la pile après le traitement.

Bien sûr, vous pouvez également utiliser un ArrayList, mais alors vous devrez maintenir et supprimer chaque élément vous avez traité vous-même

Exemple de questions logiques que vous pouvez résoudre avec ces structures:

Voir aussi cette belle réponse ici: https://stackoverflow.com/a/17436821/2940903

0

Vous avez été à une cafétéria, non? et vu une pile de plaques? Lorsqu'une plaque propre est ajoutée à la pile, elle est placée sur le dessus. Lorsqu'une plaque est retirée, elle est retirée du haut. Donc, il est appelé dernier entré, premier sorti (LIFO). Une pile d'ordinateur est comme ça, sauf qu'elle contient des nombres, et vous pouvez en faire un dans un tableau ou une liste, si vous voulez. (Si la pile d'assiettes a un ressort en dessous, ils disent que vous en «poussez» une sur le dessus, et quand vous en retirez une, vous l'en «arrachez».)

À la cafétéria, aller à l'arrière, où ils lavent la vaisselle. Ils ont une bande transporteuse où ils mettent des plaques à laver à une extrémité, et ils sortent à l'autre bout, dans le même ordre. C'est une file d'attente ou First-In-First-Out (FIFO). Vous pouvez également en faire un hors d'un tableau ou une liste si vous le souhaitez.

À quoi servent-ils? Eh bien, supposons que vous ayez une structure de données arborescente (qui ressemble à un vrai arbre en bois sauf qu'il soit à l'envers), et que vous souhaitiez écrire un programme pour le parcourir complètement, afin d'imprimer toutes les feuilles.

Une façon consiste à faire une première marche en profondeur. Vous commencez par le tronc et allez à la première branche, puis allez à la première branche de cette branche, et ainsi de suite, jusqu'à ce que vous obteniez une feuille, et l'imprimez. Mais comment sauvegardez-vous pour arriver à la prochaine branche? Eh bien, chaque fois que vous descendez dans une branche, vous "poussez" des informations dans votre pile, et lorsque vous sauvegardez, vous les "ressortez", ce qui vous indique quelle branche prendre ensuite. C'est ainsi que vous gardez une trace de la branche à faire à chaque point.

Une autre façon est une marche de grande largeur. En partant du coffre, vous numérotez toutes les branches du coffre et mettez ces numéros dans la file d'attente. Ensuite, vous prenez un nombre à l'autre bout, allez à cette branche, et pour chaque branche qui en sort, vous les numérotez à nouveau (consécutivement avec la première) et les mettez dans la file d'attente. Comme vous continuez à faire cela, vous allez d'abord visiter les branches qui sont à 1 branche du tronc. Ensuite, vous allez visiter toutes les branches qui sont à deux branches du tronc, et ainsi de suite. Finalement, vous obtiendrez les feuilles et vous pouvez les imprimer.

Ce sont deux concepts très basiques en programmation. [Copié]