I am a young programmer trying to learn C++. I have finished the three books that I own, but none of them cover queues or stacks. I have searched everywhere on the Web, and still my efforts are fruitless. Can you spare some time to explain just how queues (more important of the two) and stacks are written, implemented, and how they operate?
I would first recommend looking for a better bookstore: I know there are plenty of books out there on this subject. Writing the code is a little beyond the scope of answering these questions, but I’ll try and get you started.
To create a queue, you simply need an array to hold whatever data type you’ll be storing. You’ll then need a head and a tail index to track where you are. Initially, both head and tail point to the bottom of the array.
When you add an item, you put it at the location indicated by the head index and increment the head index. When the head index gets to the top of the array, you must wrap around to the bottom of the array again. When you come up against the tail index, the queue is full and no more items can be added.
To get an item from the queue, you return the item indicated by tail index and increment the tail index, wrapping as needed when you get to the top of the array. When both the tail and the head index are the same, the queue is empty.
A stack would also use an array, but only track the top of the array as items are added.
Both structures are ideally suited to being implemented as a class.