Eine Warteschlange ist im Grunde eine Liste mit beschränkten Zugriffsmöglichkeiten.
Eine Queue kennt die Operationen enqueue (hinten was reinstellen) und dequeue (vorne was rausnehmen).
Warteschlangen verwendet man typischerweise bei Programmen, die mehrere Clients oder Ressourcen oder irgendwelche anderen Dinger bearbeiten, und jeder der Reihe nach drankommen soll. (Kann auch eine zyklische Liste sein, wenn jeder immer wieder drankommen soll, und nicht nur einmal und fertig)
Die Implementierung sollte der Liste ähnlich sehen, auf so Scherze wie dequeue bei leerer Queue achten, ansonsten keine Herausforderung. Natürlich kann man sich einiges von dem Listen-Knowhow sparen, unter anderem wird hier eine einfache Verkettung langen. Dazu ist es günstig sich in der übergeordneten Struktur nicht nur einen Zeiger auf den Kopf, sondern auch auf den Schwanz der Schlange zu merken.