棧和隊列也是比較常見的數(shù)據(jù)結(jié)構(gòu)滋戳,它們是比較特殊的線性表,因為對于棧來說啥刻,訪問奸鸯、插入和刪除元素只能在棧頂進行,對于隊列來說可帽,元素只能從隊列尾插入娄涩,從隊列頭訪問和刪除。
對棧的基本操作有push(進棧)和pop(出棧)映跟,前者相當(dāng)于插入蓄拣,后者相當(dāng)于刪除最后一個元素。棧有時又叫作LIFO(Last In First Out)表努隙,即后進先出球恤。
隊列是一種特殊的線性表,特殊之處在于它只允許在表的前端(front)進行刪除操作剃法,而在表的后端(rear)進行插入操作碎捺,和棧一樣,隊列是一種操作受限制的線性表贷洲。進行插入操作的端稱為隊尾收厨,進行刪除操作的端稱為隊頭。
//利用LinkedList來實現(xiàn)隊列類
public class MyQueue<E> {
private LinkedList<E> list = new LinkedList<>();
//入隊
public void enqueue(E e) {
list.addLast(e);
}
//出隊
public E dequeue() {
return list.removeFirst();
}
}