模拟堆栈代码:
import java.util.*;
class MyStack<T>{
private LinkedList<T> data;
public MyStack(){
data=new LinkedList<T>();
}
//添加栈元素
public void add(T element){
data.addLast(element);
}
//获取栈元素
public T get(){
if(data.isEmpty())
return null;
return data.getLast();
}
//获取栈元素并移除
public T get_remove(){
if(data.isEmpty())
return null;
return data.removeLast();
}
//获取栈元素个数
public int size(){
return data.size();
}
//清空栈
public void clear(){
data.clear();
}
public String toString(){
return data.toString();
}
public static void main(String[] args){
MyStack<String> ms=new MyStack<String>();
ms.add("我");ms.add("要");ms.add("上");ms.add("黑");ms.add("马");
System.out.println("栈:"+ms+",共有"+ms.size()+"个元素");
System.out.println("当前栈首元素:"+ms.get());
System.out.println("依次获取栈元素:");
for(int i=0,n=ms.size();i<n;i++)
System.out.println(ms.get_remove());
System.out.println("最终栈"+ms);
}
}
模拟队列代码:
import java.util.*;
class MyQueue<T>{
private LinkedList<T> data;
public MyQueue(){
data=new LinkedList<T>();
}
//添加队列元素
public void add(T element){
data.addLast(element);
}
//获取队列元素
public T get(){
if(data.isEmpty())
return null;
return data.getFirst();
}
//获取队列元素并移除
public T get_remove(){
if(data.isEmpty())
return null;
return data.removeFirst();
}
//获取队列元素个数
public int size(){
return data.size();
}
//清空队列
public void clear(){
data.clear();
}
public String toString(){
return data.toString();
}
public static void main(String[] args){
MyQueue<String> mq=new MyQueue<String>();
mq.add("我");mq.add("要");mq.add("上");mq.add("黑");mq.add("马");
System.out.println("队列:"+mq+",共有"+mq.size()+"个元素");
System.out.println("当前队列首元素:"+mq.get());
System.out.println("依次获取队列元素:");
for(int i=0,n=mq.size();i<n;i++)
System.out.println(mq.get_remove());
System.out.println("最终队列"+mq);
}
} |
|