Stack
package MyStack;
public class Stack {
public static void main(String[] args){
Stack stack=new Stack(15);
for(int i=0;i<20;i++){
stack.push(i);
}
System.out.println("压入0到19");
stack.output();
System.out.println("Size:"+stack.size());
System.out.println("MaxSize:"+stack.maxSize());
System.out.println("Empty:"+stack.empty());
System.out.println("Full:"+stack.full());
System.out.println("弹出10个元素");
for(int i=0;i<10;i++){
System.out.print(stack.pop()+" ");
}
System.out.print("\r\n");
stack.output();
System.out.println("Size:"+stack.size());
System.out.println("MaxSize:"+stack.maxSize());
System.out.println("Empty:"+stack.empty());
System.out.println("Full:"+stack.full());
for(int i=0;i<5;i++){
stack.push(i);
}
System.out.println("压入0到4");
stack.output();
System.out.println("Size:"+stack.size());
System.out.println("MaxSize:"+stack.maxSize());
System.out.println("Empty:"+stack.empty());
System.out.println("Full:"+stack.full());
}
class Node{
public Object Data;
public Node Next;
public Node(){
Data=null;
Next=null;
}
public Node(Object object){
Data=object;
Next=null;
}
public Node(Object object,Node next){
Data=object;
Next=next;
}
}
private int Size;
private int MaxSize;
private Node Head;
public Stack(){
Size=0;
MaxSize=-1;
Head=null;
}
public Stack(int maxsize){
Size=0;
MaxSize=maxsize;
Head=null;
}
public int size() {
return Size;
}
public int maxSize() {
return MaxSize;
}
public boolean empty() {
return Size==0;
}
public boolean full() {
return Size==MaxSize;
}
public Object top(){
if(empty()){
System.out.println("stack is empty");
return null;
}
return Head.Data;
}
public Object pop(){
if(empty()){
System.out.println("stack is empty");
return null;
}
else{
Object object=Head.Data;
Head=Head.Next;
Size--;
return object;
}
}
public Stack push(Object object){
if(full()){
System.out.println("stack is full");
}
else{
Head=new Node(object,Head);
Size++;
}
return this;
}
public void output(){
if(empty()){
System.out.println("stack is empty");
}
else{
Node p=Head;
while(p!=null){
System.out.print(p.Data+" ");
p=p.Next;
}
System.out.print("\r\n");
}
}
}