题解 | #【模板】栈#

【模板】栈

http://www.nowcoder.com/practice/104ce248c2f04cfb986b92d0548cccbf

import java.util.Scanner;
//使用一个数组作为栈,初始容量为10
//使用一个int成员变量作为指针,指向栈顶。
//push前先判断栈是否满,若满了,则扩容两倍。
public class Main{
    public static void main(String[] args){
        MyStack stack = new MyStack();
        Scanner scanner = new Scanner(System.in);
        int optNum = scanner.nextInt();
        String line = scanner.nextLine();
        while(optNum>0){
            line = scanner.nextLine();
            if(line.length()>3){
                line = line.substring(5);
                stack.push(Integer.parseInt(line));
            }else{
                if(line.charAt(0) == 't'){
                    stack.top();
                }else{
                    stack.pop();
                }
            }
            optNum--;
        }
    }
    
    
}

class MyStack{
    int arr[];
    int index;
    public MyStack(){
        arr = new int[10];
        index = 0;
    }
    public void push(int x){
        extend();
        arr[index++] = x;
    }
    
    public void pop(){
        if(index == 0){
            System.out.println("error");
        }else{
            System.out.println("" + arr[--index]);
        }
    }
    
    public void top(){
        if(index == 0){
            System.out.println("error");
        }else{
            System.out.println("" + arr[index-1]);
        }
    }
    
    public void extend(){
        if(index == arr.length-1){
            int[] temp = new int[arr.length*2];
            for(int i = 0; i < arr.length; i++){
                temp[i] = arr[i];
            }
            arr = temp;
        }
    }
}

全部评论

相关推荐

当初高考报计算机真是造大孽了啊!卷的飞起!哪都是计算机的人,考研,考公,找工作全他奶的计算机的人,太难了。国企也是。关键一届比一届卷,造大孽了!
_Lyrics_:因为计算机,没有体验到快乐的大学研究生时光,好不容易修完课程就要出去实习,看着别人专业可以一起搓麻将,游山玩水,而我却要自己一个人住在北上不到十平米的出租屋,每天两点一线
点赞 评论 收藏
分享
仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务