java数组实现栈
来源:互联网 发布:爆炸物品数据上报 编辑:程序博客网 时间:2024/06/04 22:48
public class Demo2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Stack<Integer> stack=new Stack<Integer>();
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
stack.push(6);
System.out.println(stack.size);
stack.pop();
System.out.println(stack.size);
System.out.println(stack.peek());
stack.clear();
System.out.println(stack.size);
System.out.println(stack.peek());
}
}
class Stack<T>{
//数组的容量
int cal=5;
Object[] arr=new Object[cal];
//栈的大小
int size=0;
private int top=0;
//取出栈顶元素
public T peek(){
if(isE()){
return null;
}else{
return (T) arr[top-1];
}
}
//出栈
public void pop(){
arr[top-1]=null;
top--;
size--;
}
//入栈
public void push(Object num){
if(size<cal){
arr[top]=num;
top++;
size++;
}else{
//数组扩容
resize();
push(num);
}
}
//判断栈是否为空
public boolean isE(){
return size==0;
}
//将栈清空
public void clear(){
//Arrays.fill(this.arr, null);
arr=null;
size=0;
top=0;
}
//输出栈的大小
public int size(){
return size;
}
//数组扩容
public void resize(){
cal=cal*3/2-1;
Object[] arr1=new Object[cal];
System.arraycopy(this.arr, 0,arr1, 0, arr.length);
this.arr=arr1;
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Stack<Integer> stack=new Stack<Integer>();
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
stack.push(6);
System.out.println(stack.size);
stack.pop();
System.out.println(stack.size);
System.out.println(stack.peek());
stack.clear();
System.out.println(stack.size);
System.out.println(stack.peek());
}
}
class Stack<T>{
//数组的容量
int cal=5;
Object[] arr=new Object[cal];
//栈的大小
int size=0;
private int top=0;
//取出栈顶元素
public T peek(){
if(isE()){
return null;
}else{
return (T) arr[top-1];
}
}
//出栈
public void pop(){
arr[top-1]=null;
top--;
size--;
}
//入栈
public void push(Object num){
if(size<cal){
arr[top]=num;
top++;
size++;
}else{
//数组扩容
resize();
push(num);
}
}
//判断栈是否为空
public boolean isE(){
return size==0;
}
//将栈清空
public void clear(){
//Arrays.fill(this.arr, null);
arr=null;
size=0;
top=0;
}
//输出栈的大小
public int size(){
return size;
}
//数组扩容
public void resize(){
cal=cal*3/2-1;
Object[] arr1=new Object[cal];
System.arraycopy(this.arr, 0,arr1, 0, arr.length);
this.arr=arr1;
}
}
0 0
- java数组实现栈
- java数组实现栈
- java 数组实现栈
- Java数组实现栈
- java自定义栈(数组实现)
- java 用数组实现栈
- java实现栈(数组方式)
- Java用数组实现栈
- 数组实现动态栈,java
- Java数组实现自定义栈
- java用数组实现栈
- java自定义栈(数组实现)
- Java - - 数组实现栈基本功能
- 栈--数组存储--Java实现
- 用java数组实现栈
- (java)数组实现栈
- Java栈(数组实现)
- 【JAVA数据结构】栈(数组实现)
- iOS 8对APP设计来说意味着什么?
- python 模块
- 大魔术师
- bash shell去除空行
- Xcode编绎出错问题锦集
- java数组实现栈
- 实验二 第二部分 单链表
- hdu 2209 bfs+状压
- 免安装版本tomcat 指定的服务并未以已安装的服务存在,Unable to open the service
- nyoj 题目55 懒省事的小明
- C#.NEt-GDI+中的Pen测试
- logstash+elasticsearch+kibana日志处理平台
- NYOJ170 网络的可靠性(规律)
- Apple Watch将于2015年年初面市,配套SDK将会在11月份推出