Solved

How do I display what is in a stack?

Posted on 2008-06-20
2
531 Views
Last Modified: 2008-06-21
Here is my code how do I display what is in the stack?


#include <iostream>
#include <stack>
 
using namespace std;
 
void Menu();
void Add();
void Display();
void Remove();
 
stack<int> stackInt;
int name;
 
int main()
{
	Menu();
}
void Menu()
{
	int choice;
 
	cout << "Stack Menu Options\n";
	cout << "1 - Add int to stack\n";
	cout << "2 - Remove from top of stack\n";
	cout << "3 - Size of stack\n";
	cout << "0 - Quit program\n";
	cout << "Enter choice: ";
	cin >> choice;
	cout << endl;
 
	switch(choice)
	{
	case 1:
		Add();
		break;
	case 2:
		Remove();
		break;
	case 3:
		Display();
		break;
	case 0:
		exit(0);
	default:
		cout << "Not a selection, enter again!\n";
		Menu();
		break;
	}
}
 
void Add()
{
	cout << "Enter a number to add: ";
	cin >> name;
	stackInt.push(name);
	cout << endl;
	Menu();
}
 
void Display()
{
 
}
 
void Remove()
{
	stackInt.pop();
	Menu();
}

Open in new window

0
Comment
Question by:jschmuff
2 Comments
 
LVL 10

Accepted Solution

by:
oleber earned 500 total points
ID: 21836524
there is a simple recursive way

void Display()
{
   if (! stackInt.empty()) {
      int top = stackInt.top();
      cout << top << endl;
      stackInt.pop();
      Display();
      stackInt.push(top);
   }
}

0
 
LVL 53

Expert Comment

by:Infinity08
ID: 21836747
>> there is a simple recursive way

I wouldn't do it recursively if I were you. Depending on how big the stack is, you might run out of (program) stack space. Which is bad.

It's not very proper either, as the code actually empties the stack. What if the code is multi-threaded ? A display should not modify the contents of the container.

The STL stack does not provide a way to show its contents. So, I'd rather implement my own stack if I really need display functionality.
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Specific format 21 196
splitOdd10 challenge 5 105
Not seen Link button 5 37
How to measure current at integrated circuit (IC) power pin using Current Probe ? 4 13
This article is meant to give a basic understanding of how to use R Sweave as a way to merge LaTeX and R code seamlessly into one presentable document.
Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
The goal of the video will be to teach the user the difference and consequence of passing data by value vs passing data by reference in C++. An example of passing data by value as well as an example of passing data by reference will be be given. Bot…
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.

786 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question