栈只允许访问一个数据项,即最后插入的数据项。用数组实现一个栈如下:

class StackX{

private int maxSize;

private long[] stackArray;

private int top;

public StackX(int s){

maxSize = s;

stackArray = new long[maxSize];

top = -1;

}

public void push(long j){

stackArray[++top] = j;

}

public long pop(){

return stackArray[top--];

}

public long peek(){

return stackArray[top];

}

public boolean isEmpty(){

return(top==-1);

}

public boolean isFull(){

return (top == maxSize-1);

}

}

用栈实现从键盘输入字符逆序输出:

public String doRverse(){

int stackSize = input.length();

StackD theStack = new StackD(stackSize);

for(int j=0;j

char ch = input.charAt(j);

theStack.push(ch);

}

output = "";

while(!theStack.isEmpty()){

char ch =  (char) theStack.pop();

output = output + ch;

}

return output;

}

package Structure;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

class StackD{

private int maxSize;

private char[] stackArray;

private int top;

public StackD(int s){

maxSize = s;

stackArray = new char[maxSize];

top = -1;

}

public void push(char j){

stackArray[++top] = j;

}

public long pop(){

return stackArray[top--];

}

public long peek(){

return stackArray[top];

}

public boolean isEmpty(){

return(top==-1);

}

public boolean isFull(){

return (top == maxSize-1);

}

}

class Reverser{

private String input;

private String output;

public Reverser(String in){

input = in;

}

public String doRverse(){

int stackSize = input.length();

StackD theStack = new StackD(stackSize);

for(int j=0;j

char ch = input.charAt(j);//返回j处的字符

theStack.push(ch);

}

output = "";

while(!theStack.isEmpty()){

char ch =  (char) theStack.pop();

output = output + ch;

}

return output;

}

}

public class reverse {

public static void main(String[] args) throws IOException{

String input,output;

while(true){

System.out.print("Enter a String: ");

System.out.flush();

input = getString();

if(input.equals(""))

break;

Reverser theReverse = new Reverser(input);

output = theReverse.doRverse();

System.out.println("Reversed: "+ output);

}

}

public static String getString()throws IOException{

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

String s = br.readLine();

return s;

}

}

0818b9ca8b590ca3270a3433284dd417.png

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐