1栈(Stack)
1.1概念
栈:栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
1.2栈的使用
|
方法 |
功能 |
|
Stack() |
构造一个空的栈 |
|
E push(E e) |
将e入栈,并返回e |
|
E pop() |
将栈顶元素出栈并返回 |
|
E peek() |
获取栈顶元素 |
|
int size() |
获取栈中有效元素个数 |
|
boolean empty() |
检测栈是否为空 |
public static void main(String[] args) { Stack<Integer> s = new Stack(); s.push(1);
s.push(2);
s.push(3);
s.push(4);
System.out.println(s.size()); // 获取栈中有效元素个数--->
4 System.out.println(s.peek()); // 获取栈顶元素--->
4 s.pop(); // 4出栈,栈中剩余1 2 3,栈顶元素为3
System.out.println(s.pop()); // 3出栈,栈中剩余1 2 栈顶元素为3
if(s.empty()){
System.out.println("栈空");
}else{
System.out.println(s.size());
}
}
2队列(Queue)
2.1概念
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头(Head/Front)
2.2方法
|
方法 |
功能 |
|
boolean offer(E e) |
入队列 |
|
E poll() |
出队列 |
|
peek() |
获取队头元素 |
|
int size() |
获取队列中有效元素个数 |
|
boolean isEmpty() |
检测队列是否为空 |
public static void main(String[] args) {
Queue<Integer> q = new LinkedList<>();
q.offer(1);
q.offer(2);
q.offer(3);
q.offer(4);
q.offer(5); // 从队尾入队列
System.out.println(q.size());
System.out.println(q.peek()); // 获取队头元素
q.poll();
System.out.println(q.poll()); // 从队头出队列,并将删除的元素返回
if(q.isEmpty()){
System.out.println("队列空");
}else{
System.out.println(q.size());
}
}
本文介绍了数据结构中的栈和队列。栈遵循后进先出(LIFO)原则,提供了push、pop、peek和size等方法。队列则遵循先进先出(FIFO)原则,支持offer、poll、peek和size等操作。文章通过示例展示了在Java中如何使用Stack和LinkedList实现栈和队列的基本功能。
1484






