• 栈的基本运算


    利用接口的基本知识,实现一个整数栈的基本运算。

    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    
    interface IntStackinterface{//定义栈的接口
        final int maxsize=100;
        void initStack();
        boolean push(int x);
        int pop();
        boolean empty();
        boolean full();
    }
    
    class IntStack implements IntStackinterface{//定义栈类,该类实现了栈接口
        int data[];
        int top;
        IntStack(){//无参构造函数
            data=new int[maxsize];
        }
        public void initStack(){//初始化空栈
            top=-1;
        }
        public boolean push(int x){//入栈运算
            if(!full()){
                data[++top]=x;
                return true;
            }
            else return false;
        }
        public int pop(){//出栈运算
            if(!empty()){
                top--;
                return data[top+1];
            }
            else return 0;
        }
        public boolean empty(){//判断空运算
            return top==-1;
        }
        public boolean full(){//判断满运算
            return top==maxsize-1;
        }
    }
    public class StackDemo{
        public static void main(String args[])throws IOException{
            IntStack s=new IntStack();
            s.initStack();
            System.out.println("整数栈的基本运算及其运算序号如下:");
            System.out.println("	1:初始化栈");
            System.out.println("	2:入栈");
            System.out.println("	3:栈输出");
            System.out.println("	4:出栈");
            System.out.println("	0:结束程序并退出");
            System.out.println("");
            int num,k,p;
            String str;
            BufferedReader buf;
            buf=new BufferedReader(new InputStreamReader(System.in));
            do{
                do{
                    System.out.println("input an integer(运算符号0-4):");
                    str=buf.readLine();//将输入的文字指定给字符串变量str存放
                    k=Integer.parseInt(str);//将str转成int类型后指定给k存放
                }while(!(k<=4&&k>=0));
                switch(k){
                case 0 ://存放
                    return;
                case 1://初始化栈
                    s.initStack();break;
                case 2://入栈
                    while(true){
                        System.out.print("input an integer(元素end 0):");
                        str=buf.readLine();//将输入的文字指定给字符串变量str存放
                        num=Integer.parseInt(str);//将str转成int类型后指定给num存放
                        if(num!=0){//非0元素入栈
                            s.push(num);
                            System.out.println("元素"+num+"入栈");
                        }
                        else{//0元素不能入栈
                            System.out.println("元素"+num+"不能入栈");
                            break;
                        }
                    }
                    break;
                case 3://输出栈的元素
                    p=s.top;
                    if(p==-1)System.out.println("栈空");
                    System.out.println("栈内元素如下:");
                    while(p!=-1){
                        System.out.println(s.data[p]);
                        p--;
                    }
                    break;
                case 4://chu栈
                    System.out.println("元素"+s.pop()+"出栈");
                    break;
                }
            }while(k<=4&&k>=0);
        }
    }

  • 相关阅读:
    wikioi 1514 and ZJOI2006 书架
    HDU 4762 Cut the Cake(公式)
    HDU 4762 Cut the Cake(公式)
    呵呵,cnblog排名进4000了,留念一下!
    呵呵,cnblog排名进4000了,留念一下!
    电子书下载:C# Database Basics
    电子书下载:C# Database Basics
    (原創) 如何在Nios II顯示8位數的七段顯示器? (SOC) (Nios II) (SOPC Builder) (DE2-70)
    (原創) 如何在Nios II顯示8位數的七段顯示器? (SOC) (Nios II) (SOPC Builder) (DE2-70)
    部署GlusterFS及Heketi
  • 原文地址:https://www.cnblogs.com/ljs-666/p/7837434.html
Copyright © 2020-2023  润新知