<strong><span style="font-size:18px;">package com.bzu.list;
import java.util.Iterator;
import java.util.LinkedList;
public class LinkedListDemo2 {
public static void main(String[] args) {
//栈的基本操作测试
/*MyWareHouse<String> warehouse=new MyWareHouse<String>();
warehouse.push("张三");//入栈
warehouse.push("Json");
warehouse.push("Mary");
warehouse.push("李四");
warehouse.push("王五");
warehouse.pop();//出栈
warehouse.pop();
//创建一个迭代器遍历栈内剩余数据
Iterator<String> it=warehouse.iterator();
while(it.hasNext()){//判断是否仍有元素可以迭代,则返回 true。
System.out.println(it.next());//打印输出返回迭代的下一个元素
}*/
//队列的基本操作测试
MyQueue<Integer> myQueue=new MyQueue<Integer>();
myQueue.push(10);//入队列
myQueue.push(20);
myQueue.push(30);
myQueue.push(40);
myQueue.push(50);
myQueue.pop();//出队列
myQueue.pop();
//迭代器遍历,创建一个迭代器
for(Iterator<Integer> it=myQueue.iterator();it.hasNext();){
System.out.println(it.next());
}
/*for(Integer number:myQueue){//只能遍历一个数组或一个实例java.lang.Iterable
System.out.println(number);
}*/
}
}
class MyWareHouse<T>{
/**简单的模拟栈操作
* 栈的特点:先进后出
*/
private LinkedList<T> data=null;//声明一个LinkedList泛型用来做栈
public MyWareHouse(){
data=new LinkedList<T>();//新建一个泛型的data容器(当做栈)
}
//压栈
public void push(T obj){
data.addFirst(obj);//从首地址放入data容器中(入栈)
}
//出栈
public T pop(){
return data.removeFirst();//从首地址删除,(就是出栈)
}
//迭代器(用来遍历对栈操作之后的栈内信息)
public Iterator<T> iterator(){
return data.iterator();//栈内信息迭代遍历
}
}
class MyQueue<T>{
/**简单模拟队列的操作
* 队列的特点:先进后出
*/
//声明一个LinkedList泛型的容器
private LinkedList<T> data=null;
public MyQueue(){
data=new LinkedList<T>();//创建一个新的容器data
}
//入队列
public void push(T obj){
data.addFirst(obj);//从首地址存入数据
}
//出队列
public T pop(){
return data.removeLast();//删除尾地址数据元素
}
//迭代器遍历容器元素
public Iterator<T> iterator(){
return data.iterator();//输出data中的元素数据
}
}
</span></strong>
菜鸟:模拟栈和队列的push和pop
最新推荐文章于 2024-05-27 16:53:08 发布