Sort a stack
PROBLEM :
Given a stack, the task is to sort it such that the top of the stack has the greatest element.
Input:
The first line of input will contains an integer T denoting the no of test cases . Then T test cases follow. Each test case contains an integer N denoting the size of the stack. Then in the next line are N space separated values which are pushed to the the stack.
Output:
For each test case output will be the popped elements from the sorted stack.
Constraints:
1<=T<=100
1<=N<=100
Example(To be used only for expected output):
Input:
2
3
3 2 1
5
11 2 32 3 41
Output:
3 2 1
41 32 11 3 2
Explanation:
For first test case stack will be
1
2
3
After sorting
3
2
1
When elements popped : 3 2 1
--------------------------------------------------------------------------------
SIMPLE c++ IMPLEMENTATION :
--------------------------------------------------------------------------------
/*The structure of the class is
class SortedStack{
public:
stack<int> s;
void sort();
};
*/
/* The below method sorts the stack s
you are required to complete the below method */
void SortedStack :: sort()
{
stack<int> sta ;
while(!s.empty())
{
sta.push(s.top()) ;
s.pop() ;
}
int temp ;
while(!sta.empty())
{
temp=sta.top() ;
sta.pop() ;
while(!s.empty()&&s.top()>temp)
{
sta.push(s.top()) ;
s.pop() ;
}
s.push(temp) ;
}
}
---------------------------------------------------------------------------------
Given a stack, the task is to sort it such that the top of the stack has the greatest element.
Input:
The first line of input will contains an integer T denoting the no of test cases . Then T test cases follow. Each test case contains an integer N denoting the size of the stack. Then in the next line are N space separated values which are pushed to the the stack.
Output:
For each test case output will be the popped elements from the sorted stack.
Constraints:
1<=T<=100
1<=N<=100
Example(To be used only for expected output):
Input:
2
3
3 2 1
5
11 2 32 3 41
Output:
3 2 1
41 32 11 3 2
Explanation:
For first test case stack will be
1
2
3
After sorting
3
2
1
When elements popped : 3 2 1
--------------------------------------------------------------------------------
SIMPLE c++ IMPLEMENTATION :
--------------------------------------------------------------------------------
/*The structure of the class is
class SortedStack{
public:
stack<int> s;
void sort();
};
*/
/* The below method sorts the stack s
you are required to complete the below method */
void SortedStack :: sort()
{
stack<int> sta ;
while(!s.empty())
{
sta.push(s.top()) ;
s.pop() ;
}
int temp ;
while(!sta.empty())
{
temp=sta.top() ;
sta.pop() ;
while(!s.empty()&&s.top()>temp)
{
sta.push(s.top()) ;
s.pop() ;
}
s.push(temp) ;
}
}
---------------------------------------------------------------------------------
Comments
Post a Comment