先进后出
public class list_2 {
//单链表实现栈
//队列:先进先出
//栈:(弹夹结构)先进后出
public static class Node<V>{
public V value;
public Node<V> next;
public Node(V v){
value=v;
next=null;
}
}
public static class MyStack<V>
{
private Node<V> head ;
private int size=0;
public MyStack(){
head=null;
size=0;
}
public boolean isEmpyt(){
//栈有无元素
return size==0;
}
public int size(){
//栈有几个元素
return size;
}
public void push(V value){
Node<V> cur=new Node<>(value);
if(head==null)
{
head=cur;
}else {
cur.next=head;//指针指向最新加入的元素
head=cur;
}
size++;
}
public V pop(int i)
{
//先进先出
V ans=null;
if(head!=null){
ans=head.value;
head=head.next;
size--;
}
return ans;
}
public V peak()
{//获得此时弹出的节点
return head!=null?head.value:null;
}
}
public static void main(String[] args) {
MyStack<Integer> mystack=new MyStack<Integer>();
// mystack.offer(1);给任意值
for (int i = 0; i <4 ; i++) {
mystack.push(i);
}
for (int i = 0; i < 4; i++) {
System.out.println(mystack.pop(i));
//System.out.println(mystack.peak());
}
}
}