成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【面試算法】由兩個棧組成的隊列

wenshi11019 / 3350人閱讀

摘要:題目編寫一個類,用兩個棧實現隊列,支持隊列的基本操作,,代碼實現

【題目】編寫一個類,用兩個棧實現隊列,支持隊列的基本操作(add,poll,peek)

代碼實現

public class TwoStacksQueue {

    private Stack stackPush;
    private Stack stackPop;

    public TwoStacksQueue(){
        stackPush = new Stack();
        stackPop = new Stack();
    }

    public void add(int newNum){
        stackPush.push(newNum);
    }

    public int poll(){
        if (stackPop.isEmpty() && stackPush.isEmpty()) {
            System.out.println("queue is empty");
            return -1;
        }else if(stackPop.isEmpty()){
            while(!stackPush.isEmpty()){
                stackPop.push(stackPush.pop());
            }
        }
        return stackPop.pop();
    }

    public int peek(){
        if (stackPop.isEmpty() && stackPush.isEmpty()) {
            System.out.println("queue is empty");
            return -1;
        }else if(stackPop.isEmpty()){
            while(!stackPush.isEmpty()){
                stackPop.push(stackPush.pop());
            }
        }
        return stackPop.peek();
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        TwoStacksQueue queue = new TwoStacksQueue();
        int[] testNum = {4,2,4,6,5,0,1,10};
        for(int i:testNum){
            queue.add(i);
        }
        for(int i = 0; i < testNum.length; i++){
            System.out.println(queue.peek()+" "+queue.poll());
        }
    }

}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/65578.html

相關文章

  • [面試專題]數據結構和算法-JS之魂

    摘要:數據結構和算法之魂標簽空格分隔未分類數據結構棧一種遵從先進后出原則的有序集合新添加的或待刪除的元素都保存在棧的末尾,稱作棧頂,另一端為棧底。 數據結構和算法-JS之魂 標簽(空格分隔): 未分類 數據結構: 棧:一種遵從先進后出 (LIFO) 原則的有序集合;新添加的或待刪除的元素都保存在棧的末尾,稱作棧頂,另一端為棧底。在棧里,新元素都靠近棧頂,舊元素都接近棧底。 class St...

    張利勇 評論0 收藏0
  • [面試專題]數據結構和算法-JS之魂

    摘要:數據結構和算法之魂標簽空格分隔未分類數據結構棧一種遵從先進后出原則的有序集合新添加的或待刪除的元素都保存在棧的末尾,稱作棧頂,另一端為棧底。 數據結構和算法-JS之魂 標簽(空格分隔): 未分類 數據結構: 棧:一種遵從先進后出 (LIFO) 原則的有序集合;新添加的或待刪除的元素都保存在棧的末尾,稱作棧頂,另一端為棧底。在棧里,新元素都靠近棧頂,舊元素都接近棧底。 class St...

    aervon 評論0 收藏0
  • [面試專題]數據結構和算法-JS之魂

    摘要:數據結構和算法之魂標簽空格分隔未分類數據結構棧一種遵從先進后出原則的有序集合新添加的或待刪除的元素都保存在棧的末尾,稱作棧頂,另一端為棧底。 數據結構和算法-JS之魂 標簽(空格分隔): 未分類 數據結構: 棧:一種遵從先進后出 (LIFO) 原則的有序集合;新添加的或待刪除的元素都保存在棧的末尾,稱作棧頂,另一端為棧底。在棧里,新元素都靠近棧頂,舊元素都接近棧底。 class St...

    dayday_up 評論0 收藏0
  • 想進大廠?50個多線程面試題,你會多少?(一)

    摘要:下面是線程相關的熱門面試題,你可以用它來好好準備面試。線程安全問題都是由全局變量及靜態(tài)變量引起的。持有自旋鎖的線程在之前應該釋放自旋鎖以便其它線程可以獲得自旋鎖。 最近看到網上流傳著,各種面試經驗及面試題,往往都是一大堆技術題目貼上去,而沒有答案。 不管你是新程序員還是老手,你一定在面試中遇到過有關線程的問題。Java語言一個重要的特點就是內置了對并發(fā)的支持,讓Java大受企業(yè)和程序員...

    wow_worktile 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<