How to sort a stack using only Push, Pop, Top, IsEmpty, IsFull?

前端 未结 10 2159
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-02-06 09:26

Given a stack S, need to sort the stack using only Push, Pop, Top, IsEmpty, IsFull.

Looking for most sim

10条回答
  •  不要未来只要你来
    2021-02-06 10:05

    //A java version

    public static void sort(Stack s){
        if(s.size() > 0){
            int tmp = s.pop();
            sort(s);
            sortFromBottom(s, tmp);
        }
    }
    
    private static void sortFromBottom(Stack s, Integer value){
        if(s.size() == 0){
            s.add(value);
        }else{
            int tmpValue = s.peek();
            if(tmpValue < value){
                s.pop();
                sortFromBottom(s, value);
                s.push(tmpValue);
            }else{
                s.push(value);
            }
        }
    }
    

提交回复
热议问题