Les files d'attente traitent les informations dans l'ordre où elles sont reçues, tandis que les piles traitent le dernier élément ajouté en premier. Les deux méthodes sont utiles pour différentes tâches, et savoir quel processus utiliser dépend de l'objectif.
Une file d'attente fonctionne un peu comme une file d'attente dans la vraie vie. Les premiers arrivés sont traités en premier. Les files d'attente sont appropriées pour traiter de nombreux types de requêtes réseau ; les demandes d'informations plus anciennes devraient généralement être traitées en premier pour éviter que les gens n'attendent indéfiniment l'arrivée d'un nouveau trafic. Le terme FIFO, qui signifie « premier entré, premier sorti », est courant lorsqu'on parle de files d'attente.
Stacks traite d'abord les demandes les plus récentes. Lorsqu'elles traitent des problèmes arithmétiques complexes, les piles indiquent au programme de résoudre ce qui se trouve entre parenthèses avant de continuer. Les piles sont également utiles pour initialiser des programmes. Les piles fonctionnent selon la méthodologie LIFO, ou « dernier entré, premier sorti ».
Connaître le type de liste à utiliser est important pour écrire des programmes efficaces, et certains types de logique de programme ne fonctionnent qu'avec des piles ou des files d'attente. Lors de l'utilisation de langages de programmation de bas niveau, l'implémentation d'une pile ou d'une file d'attente nécessite généralement de traiter des tableaux et des pointeurs. Les langages de haut niveau simplifient le processus et beaucoup fournissent des wrappers efficaces pour simplifier le processus. Cependant, il est important de comprendre comment les piles et les files d'attente traitent les informations, quel que soit le type de langage de programmation utilisé.