I see that you're using pointers to entry in some places, and not others... change your code so it's consistent, i.e. use entry* everywhere in your Queue and related classes.
I tested this, and your code returns the following when it's all pointers:
c
b
a
gusano79
Practically a Master Poster
675 posts since May 2004
Reputation Points: 193
Solved Threads: 108
Skill Endorsements: 6
Ya, I ended up doing just that, and it seems to be working fine. Still kind of curious as to why my first implementation did't work, but whatever. Thanks for looking it over! If anyone wants the updated code with first as a pointer, let me know.
I didn't spend too much time diagnosing exactly where the problem was, but I'm 99% confident that it has to do with the fact that the non-pointers are getting passed by value, so you're making copies instead of referring to the original objects.
gusano79
Practically a Master Poster
675 posts since May 2004
Reputation Points: 193
Solved Threads: 108
Skill Endorsements: 6