CS/자료구조
자료구조 - Stack
빈둥벤둥
2021. 2. 17. 21:22
Stack
stack 자료구조
- 후입선출 알고리즘으로 나중에 들어온 데이터를 먼저 반환한다.
- 시간 복잡도
- insert: O(1)
- delete: O(1)
- search: O(n)
구현 with JAVA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
public class Stack {
private int top;
private int size;
private int[] arr;
//생성자
public stack(int size) {
top = -1;
this.size = size;
arr = new int[size];
}
public boolean inEmpty() {
return top == -1;
}
public boolean isFull() {
return top == size - 1;
}
//스택에 item insert
public void push(int item) {
if(isFull()) return; //스택에 정보를 저장하기 전에 꽉 찼는지 검사
arr[++top] = item;
}
//top 조회
public void peek() {
if(isEmpty()) return; //스택의 정보를 조회하기 전에 데이터가 있는지 검사
}
//top 반환(조회 후 삭제)
public void pop() {
if(isEmpty()) return; // 데이터가 있는지 검사
return arr[top--];
}
//top으로부터 item의 위치를 반환
public int serach(int item) {
if(isEmpty()) return -1;
for(int i = 0; i <= top; i++) {
if(item == arr[i]) return top - i - 1;
}
return -1; //못 찾았을 경우
}
}
|
cs |