# problem on stack

hi,
i am a student of mca. i have a problem for my assignment. i need help from the esteemed members.

suppose the input to a stack is 1,2,3,4,5 in the order, i.e., 1 comes first,then 2 and so on. Which of the following rearrangements can be obtained in the output order? for those that can, explain how, giving the sequence of operations. for those outputs that cannot be so obtained, explaing why.
1) 1 2 4 5 3
2) 2 1 4 3 5
3) 2 1 5 3 4
4) 3 1 2 4 5

ok. thanks for your help in advance

## Comments

• [color=Blue]"Elements are removed from the stack in the reverse order to the order of their addition."

[link=http://en.wikipedia.org/wiki/Stack_(data_structure)]http://en.wikipedia.org/wiki/Stack_(data_structure)[/link]
[/color]
• thanks a lot
but my doubt is when we pop an element from the stack can we store it in a variable? if we can then all the four output order is possible. isnt it? when we pop an element its removed from the stack. can we re introduce the element to the same stack?
• 1) and 2) are correct.

• Yes, friend
we can do it.....we can put all poped element again into the same stack..just create variable for each poped element n store...n as stack is empty push all those var. one by one into the stack...

its my pleasure to answer your question......
have a nice weekend
• : suppose the input to a stack is 1,2,3,4,5 in the order, i.e., 1
: comes first,then 2 and so on. Which of the following rearrangements
: can be obtained in the output order? for those that can, explain
: how, giving the sequence of operations. for those outputs that
: cannot be so obtained, explaing why.
: 1) 1 2 4 5 3
: 2) 2 1 4 3 5
: 3) 2 1 5 3 4
: 4) 3 1 2 4 5

Well, one can obtain any of these, when needed:

[code]
//Creates the std::stack as described
const std::stack s = CreateStack();

//Copy it to a std::vector
const std::vector v(s);

//Shuffle it!
std::random_shuffle(v.begin(),v.end());
[/code]
Sign In or Register to comment.

#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!