📄 新建 文本文档.cpp
字号:
//import java.io.*;
//定义栈类
class LinkStack{
private int maxSize;
private int[] stackArray;
public int top;
LinkStack(int s){
maxSize = s;
stackArray = new int[maxSize];
top = -1;
}
//入栈
public void push(int p){
stackArray[++top] = p;
}
//出栈
public int pop(){
return stackArray[top--];
}
//查看栈顶元素
public int peek(){
return stackArray[top];
}
}
//定义排序类
class StackSequence{
//生成缓冲轨道
private LinkStack stack1=new LinkStack(20);
//生成排序轨道
private LinkStack stack2=new LinkStack(20);
//开始调度
public void judgeSequence(LinkStack stack0,int l){
//每次把最大序号车厢入排序道
for(int i=l;i>0;i--){
//第一节车厢进入排序轨道
if(stack0.top>=0)
stack2.push(stack0.pop());
//余下车厢的序号依次和排序道中靠外的车厢比较,较大序号入排序道,小的入缓冲道
for(int j=0;j if (stack0.top>=0){
if(stack0.peek() > stack2.peek()){
stack1.push(stack2.pop());
stack2.push(stack0.pop());
}
else{
stack1.push(stack0.pop());
}
}
}
//一次调度完成后,缓冲道中所有车厢重新进入原轨
for(int m=0;m if(stack1.top>=0){
stack0.push(stack1.peek());
if(stack1.top!=0)
stack1.pop();
}
}
// System.out.println(stack0.top+","+stack2.top);
}
//调度完成,排序结果输出
if(stack2.top>=0){
for(int i=l;i>0;i--){
System.out.print(stack2.peek()+",");
if(stack2.top!=0)
stack2.pop();
}
}
}
}
//定义调度类
//public class Attemper{
//public static void main(String args[]){
//生成排序对象
StackSequence SS = new StackSequence();
//生成待调度车厢原轨
LinkStack stack0=new LinkStack(20);
//生成待调度车厢序列号
//String s=null;
System.out.println("请输入一个待判断的输出序列:");
//BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
s = br.readLine();
}
catch (IOException e) {
e.printStackTrace();
}
// if(s==null||s.length()==0)
System.out.println("字符串长度应该大于或等于1");
// else{
if(s.equals("finish")==true)
return;
// else{
// char a[]=s.toCharArray();
//将输入字符转换为int并入轨
// for(int i=0;i stack0.push(a[i]-48);
// }
// }
//开始调度
//SS.judgeSequence(stack0,s.length());
// }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -