0
点赞
收藏
分享

微信扫一扫

栈的简单实现及其回文数的判断

卿卿如梦 2022-06-17 阅读 118

栈的简单实现

public class ArrayStack {

public ArrayStack(int maxSize) {
this.maxSize = maxSize;
arrayStack = new int[maxSize];
}
//栈顶指针
private int top = -1;
//栈的大小
private int maxSize;
//定义数组栈
private int[] arrayStack;

public boolean isFull(){
return top == maxSize-1;
}

public boolean isEmpty(){
return top == -1;
}
//压栈
public int push(int value){
if(isFull()){
throw new RuntimeException("栈满,请释放空间");
}
top++;
arrayStack[top] = value;
return value;
}
//弹栈
public int pop(){
if(isEmpty())
throw new RuntimeException("栈空,请添加元素");
int value = arrayStack[top];
top--;
return value;
}
//遍历栈中元素
public void list(){
if(isEmpty()){
throw new RuntimeException("栈空");
}
for(int i=top;i>=0;i--){
System.out.printf("%d ",arrayStack[i]);
}
}
}

回文数的判断

//判断回文数
//使用StringBuilder
public boolean huiWen(String value){

StringBuilder newVal = new StringBuilder();
for(int i=0;i<value.length();i++){
push(value.charAt(i));
newVal.append((char)pop());
}
return newVal.toString().equals(value);
}
//使用String来拼接字符串
public boolean huiWenString(String value){

String newVal = "";
for(int i=0;i<value.length();i++){
push(value.charAt(i));
newVal += (char)pop();
}
return newVal.equals(value);
}


举报

相关推荐

0 条评论