zoukankan      html  css  js  c++  java
  • 栈的基本运算

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

    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);
        }
    }

  • 相关阅读:
    Delphi XE4 FireMonkey 开发 IOS APP 发布到 AppStore 最后一步.
    Native iOS Control Delphi XE4
    Delphi XE4 iAD Framework 支持.
    using IOS API with Delphi XE4
    GoF23种设计模式之行为型模式之命令模式
    Android青翼蝠王之ContentProvider
    Android白眉鹰王之BroadcastReceiver
    Android倚天剑之Notification之亮剑IOS
    Android紫衫龙王之Activity
    GoF23种设计模式之行为型模式之访问者模式
  • 原文地址:https://www.cnblogs.com/ljs-666/p/7837434.html
Copyright © 2011-2022 走看看