自定义堆和栈

package com.temp;

import java.util.ArrayDeque;
import java.util.Deque;

public class text {



/**
* 使用队列实现堆栈
* 1、弹
* 2、压
* 3、获取头
* @author administrator
*
* @param <E>
*/
public static class MyStack<E>{
//容器
private Deque<E> container=new ArrayDeque<E>();
//容量
private int cap;
public MyStack(int cap) {
super();
this.cap=cap;
}
//压栈
public boolean push(E e) {
if(container.size()+1>cap) {
return false;
}
return container.offer(e);
}

//弹栈
public E pop() {
return container.pollLast();
}
//获取
public E peek() {
return container.peekLast();
}

public int size() {
return this.container.size();
}




}

}

package com.temp;

import com.temp.text.MyStack;

public class Dotext {

/**
* @param args
*
*
*
*/
public static void main(String[] args) {
MyStack<String> back =new MyStack<String>(4);
back.push("www.baidu.com");
back.push("www.sina.com");
back.push("www.bjdfx.com");
back.push("www.jhde.com");
System.out.println("大小:"+back.size());

//遍历
String item=null;
while(null!=(item=back.pop())) {
System.out.println(item);
}

//栈 是一个车厢 最大的容量是3M
//堆 是一个火车 将内存中的零散空间组成的一张链式表格

//数据基本类型就是储存在栈里面的

//数据存储在堆里面

//例如:

//String str=new String ("123");

//str就在栈里面

//123在堆里面



}
}

原文地址:https://www.cnblogs.com/hyfl/p/10892283.html