栈和队列
一.栈
1.概念
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈
顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。
出栈:栈的删除操作叫做出栈。出数据在栈顶。
2.栈的实现
public class MyStack{
private int[]array=newint[100];
private intsize=0;
public void push(int v){
array[size++]=v;
}
public int pop(){
return array[--size];
}
public int peek(){
return array[size-1];
}
public boolean is Empty(){
return size==0;
}
public in tsize(){
return size;
}
}
二.队列
1.概念
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear)出队列:进行删除操作的一端称为队头(Head/Front)
2.实现
三.循环队列
四.双端队列
双端队列(deque)是指允许两端都可以进行入队和出队操作的队列,deque 是 “double ended queue” 的简称。那就说明元素可以从队头出队和入队,也可以从队尾出队和入队。
注意:双端队列可以做队列,也可以作为栈使用