# 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

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

[/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...

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]