栈和队列


import java.util.InputMismatchException;

class Node{
int val;
Node next;

public Node(int val, Node next) {
this.val = val;
this.next = next;
}
public Node(int val){
this(val,null);
}
}
//插入元素
public class MyQueue {
private Node head=null;
private Node tail=null;
private int size=0;

public void offer(int v){
Node node=new Node (v);
if(tail==null){
head=node;
}
tail.next=node;
tail.next=tail;
size++;
}
//删除元素
public Integer poll(){
if(head==null){
return null;
}
int val=head.val;
head=head.next;
if(head==null){
return null;
}
return val;

}
//获取首元素
public Integer peek(){
if(head==null){
return null;
}
return head.val;
}

//栈的使用
//规则是后进先出

public class MyStack {
private int[] arr=new int[100];
private int size=0;
//插入元素
public void push(int v){
arr[size++]=v;
}
//删除元素
public int pop(){
return arr[size--];
}
//获取删除元素的值
public int peek(){
return arr[size-1];
}
}
/循环队列
public class MyQueueByArray {
private int[] array=new int[100];
private int head=0;
private int tail=0;
private int size=0;
//元素入列
public void offer(int v){
if(size==array.length){
return ;
}
array[tail]=v;
tail++;
if(tail>=array.length){
tail=0;
}
size++;
}
//元素出列
public Integer poll(){
if(size==0){
return null;
}
int val=array[head];
head++;
if(head>=array.length){
head=0;
}
size--;
return val;
}
//获取首元素
public Integer peek(){
if(size==0){
return null;
}
return array[head];
}

}
posted @ 2020-03-26 21:29  哈哈,呵呵,嘿嘿  阅读(105)  评论(0)    收藏  举报