java的顺序栈。
蛮简单的,没啥可研究的。进出栈,取长,判满,判空。
//使用顺序表实现栈
import java.util.Random;
public class se_stack {
public static void main(String[] args){
stack s = new stack(1000);
//使用随机数填满栈,每次都生成一个随机数。
Random r = new Random();
for(int i=0;i<1000;i++){
s.push_stack(r.nextInt(100));
}
System.out.println("栈此时长度为:" + s.get_length());
s.print_stack();
System.out.println("===================================");
System.out.println("弹出一个元素:"+ s.pop_stack());
System.out.println("===================================");
s.print_stack();
}
}
class stack{
//类属性一个数组。
int[] arry;
//类属性一个栈顶指针。
int p;
//构造器默认设置栈最大长度为100。
stack(){
this.arry = new int[100];
this.p = 0;
}
//构造器读取用户设定长度。
stack(int n){
this.arry = new int[n];
this.p = 0;
}
//判满
boolean is_full(){
return p == arry.length;
}
//判空
boolean is_empty(){
return p == 0;
}
//进栈一个元素
boolean push_stack(int num){
if(is_full()){
System.out.println("表已经满了,拉胯了。麻烦您初始化时容量整大点。");
return false;
}
arry[p] = num;
p++;
return true;
}
//出栈一个元素
int pop_stack(){
if(is_empty()){
System.out.println("栈已经空了,别弹了!");
System.exit(-1);
}
p--;
return arry[p];
}
//取栈长度
int get_length(){
return p;
}
//取数组
int[] get_arry(){
return arry;
}
//打印栈
void print_stack(){
if(is_empty()){
System.out.println("栈空的,啥也不是。");
System.exit(-1);
}
System.out.println("-----------------------------打印栈-------------------------------");
for(int i=0;i
System.out.print(arry[i]+" ");
}
System.out.println(" ");
System.out.println("-----------------------------打印结束-----------------------------");
}
}