黑马程序员技术交流社区
标题:
用LinkedList模拟堆栈或者队列数据结构
[打印本页]
作者:
真实姓名被注册
时间:
2015-8-5 23:53
标题:
用LinkedList模拟堆栈或者队列数据结构
模拟堆栈代码:
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);
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2