mirror of
https://github.com/krahets/hello-algo.git
synced 2024-12-24 09:16:28 +08:00
Update the chapter of stack and queue.
This commit is contained in:
parent
050b922f8a
commit
82bbdd444d
5 changed files with 27 additions and 35 deletions
|
@ -26,7 +26,7 @@ int main() {
|
|||
cout << "栈顶元素 top = " << top << endl;
|
||||
|
||||
/* 元素出栈 */
|
||||
stack.pop();
|
||||
stack.pop(); // 无返回值
|
||||
cout << "出栈元素 pop = " << top << ",出栈后 stack = ";
|
||||
PrintUtil::printStack(stack);
|
||||
|
||||
|
|
|
@ -11,23 +11,22 @@ import java.util.*;
|
|||
public class stack {
|
||||
public static void main(String[] args) {
|
||||
/* 初始化栈 */
|
||||
// 在 Java 中,推荐将 ArrayList 当作栈来使用
|
||||
List<Integer> stack = new ArrayList<>();
|
||||
Stack<Integer> stack = new Stack<>();
|
||||
|
||||
/* 元素入栈 */
|
||||
stack.add(1);
|
||||
stack.add(3);
|
||||
stack.add(2);
|
||||
stack.add(5);
|
||||
stack.add(4);
|
||||
stack.push(1);
|
||||
stack.push(3);
|
||||
stack.push(2);
|
||||
stack.push(5);
|
||||
stack.push(4);
|
||||
System.out.println("栈 stack = " + stack);
|
||||
|
||||
/* 访问栈顶元素 */
|
||||
int peek = stack.get(stack.size() - 1);
|
||||
int peek = stack.peek();
|
||||
System.out.println("栈顶元素 peek = " + peek);
|
||||
|
||||
/* 元素出栈 */
|
||||
int pop = stack.remove(stack.size() - 1);
|
||||
int pop = stack.pop();
|
||||
System.out.println("出栈元素 pop = " + pop + ",出栈后 stack = " + stack);
|
||||
|
||||
/* 获取栈的长度 */
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
## 双向队列常用操作
|
||||
|
||||
双向队列的常用操作见下表,方法名需根据特定语言来确定。
|
||||
双向队列的常用操作见下表,方法名需根据语言来确定,此处以 Java 为例。
|
||||
|
||||
<div class="center-table" markdown>
|
||||
|
||||
|
@ -18,8 +18,6 @@
|
|||
| pollLast() | 删除队尾元素 | $O(1)$ |
|
||||
| peekFirst() | 访问队首元素 | $O(1)$ |
|
||||
| peekLast() | 访问队尾元素 | $O(1)$ |
|
||||
| size() | 获取队列的长度 | $O(1)$ |
|
||||
| isEmpty() | 判断队列是否为空 | $O(1)$ |
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
## 队列常用操作
|
||||
|
||||
队列的常用操作见下表,方法名需根据特定语言来确定。
|
||||
队列的常用操作见下表,方法名需根据语言来确定,此处以 Java 为例。
|
||||
|
||||
<div class="center-table" markdown>
|
||||
|
||||
|
@ -16,9 +16,7 @@
|
|||
| --------- | -------------------------- | -------- |
|
||||
| push() | 元素入队,即将元素添加至队尾 | $O(1)$ |
|
||||
| poll() | 队首元素出队 | $O(1)$ |
|
||||
| front() | 访问队首元素 | $O(1)$ |
|
||||
| size() | 获取队列的长度 | $O(1)$ |
|
||||
| isEmpty() | 判断队列是否为空 | $O(1)$ |
|
||||
| peek() | 访问队首元素 | $O(1)$ |
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
## 栈常用操作
|
||||
|
||||
栈的常用操作见下表(方法命名以 Java 为例)。
|
||||
栈的常用操作见下表,方法名需根据语言来确定,此处以 Java 为例。
|
||||
|
||||
<div class="center-table" markdown>
|
||||
|
||||
|
@ -19,8 +19,6 @@
|
|||
| push() | 元素入栈(添加至栈顶) | $O(1)$ |
|
||||
| pop() | 栈顶元素出栈 | $O(1)$ |
|
||||
| peek() | 访问栈顶元素 | $O(1)$ |
|
||||
| size() | 获取栈的长度 | $O(1)$ |
|
||||
| isEmpty() | 判断栈是否为空 | $O(1)$ |
|
||||
|
||||
</div>
|
||||
|
||||
|
@ -30,25 +28,24 @@
|
|||
|
||||
```java title="stack.java"
|
||||
/* 初始化栈 */
|
||||
// 在 Java 中,推荐将 ArrayList 当作栈来使用
|
||||
List<Integer> stack = new ArrayList<>();
|
||||
|
||||
Stack<Integer> stack = new Stack<>();
|
||||
|
||||
/* 元素入栈 */
|
||||
stack.add(1);
|
||||
stack.add(3);
|
||||
stack.add(2);
|
||||
stack.add(5);
|
||||
stack.add(4);
|
||||
|
||||
stack.push(1);
|
||||
stack.push(3);
|
||||
stack.push(2);
|
||||
stack.push(5);
|
||||
stack.push(4);
|
||||
|
||||
/* 访问栈顶元素 */
|
||||
int peek = stack.get(stack.size() - 1);
|
||||
|
||||
int peek = stack.peek();
|
||||
|
||||
/* 元素出栈 */
|
||||
int pop = stack.remove(stack.size() - 1);
|
||||
|
||||
int pop = stack.pop();
|
||||
|
||||
/* 获取栈的长度 */
|
||||
int size = stack.size();
|
||||
|
||||
|
||||
/* 判断是否为空 */
|
||||
boolean isEmpty = stack.isEmpty();
|
||||
```
|
||||
|
@ -70,7 +67,7 @@
|
|||
int top = stack.top();
|
||||
|
||||
/* 元素出栈 */
|
||||
stack.pop();
|
||||
stack.pop(); // 无返回值
|
||||
|
||||
/* 获取栈的长度 */
|
||||
int size = stack.size();
|
||||
|
|
Loading…
Reference in a new issue