数组实现栈及用栈实现字符串逆序

来源:互联网 发布:水暖工程预算表软件 编辑:程序博客网 时间:2024/06/07 22:21

栈的实现


  • 栈是先进后出,后进先出的一种数据结构。将栈想象成弹夹就可以,而子弹就是每一个数据。

下面用数组来实现一个栈

public class MyStack{    //数组实现栈    private int[] arr;    private int maxSize;    //根据top所指向的位置进行压入和弹出(被限制了)    private int top;    //构造方法    public MyStack(int maxSize){        this.maxSize=maxSize;        arr=new int[maxSize];        top=-1;    }    //压入数据    public void push(int value){        arr[++top]=value;    }    //弹出数据    public int pop(){        return arr[top--];    }    //访问栈顶元素    public int peek(){        return arr[top];    }    //栈是否为空    public boolean isEmpty(){        return (top == -1);    }    //栈是否满了    public boolean isFull(){        return (top == maxSize-1);    }}

用栈实现字符串逆序


  • 如何把String a=”abc”;变成String b=”cba”; 用栈就可以实现

首先把上面MyStack中的int[] 变成 char[]
public class Reverse{    private String input;    public Reverse(String input){        this.input=input;    }    public String doReverse(){        MyStack ms=new MyStack(input.length());        for(int i=0;i<input.length();i++){            char c=input.charAt(i);            ms.push(c);        }        String output="";        while(!ms.isEmpty()){            char ch=ms.pop();            output += ch;        }        return output;    }}
0 0
原创粉丝点击