| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 컬렉션
- 너비우선탐색
- android fragment
- SQLite와 Realm 차이점
- support fragment
- 소수 알고리즘
- support 라이브러리
- 자료구조
- 백준 알고리즘
- 백준
- BFS
- java
- DFS
- 안드로이드 파일
- application not responding
- anr
- 안드로이드 DBMS
- android adapterview
- android support
- 액티비티 ANR
- db
- 깊이우선탐색
- 알고리즘
- 안드로이드 ANR
- 안드로이드
- Github
- 자바 컬렉션
- oracle
- 안드로이드 AdapterView
- 소수
Archives
- Today
- Total
밍의 기록들😉
[자료구조] 스택(Stack) 본문
스택(Stack)의 개념
한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료 구조 (선형 자료 구조)
가장 나중에 삽입된 자료가 가장 먼저 삭제되는 후입선출(LIFO; Last In First Out) 방식으로 자료를 처리
스택(Stack)의 에러
스택 오버플로우 : 스택의 모든 기억장소가 꽉 채워져 있는 상태이므로 더 이상 자료를 삽입할 수 없을 때 발생
스택 언더플로우 : 스택에 제거할 자료가 없을 때 발생
스택(Stack)의 연산
create(size) : 스택의 크기를 지정하고 생성한다.
push(item) : item을 스택에 삽입한다.
pop() : 스택에 가장 위에 있는 항목을 제거한다.
top() : 스택의 가장 위에 있는 항목을 반환한다.
size() : 스택에 있는 item의 개수를 반환한다.
스택(Stack)의 예제
상태의 의존관계가 생길 때 A라는 일을 마치기 위해서 B라는 일을 먼저 끝내야 할 때 사용
= 스케줄링(Scheduling)
재귀 알고리즘
DFS(깊이 우선 탐색)
올바른 괄호 문자열 판단
스택(Stack)의 구현
class Stack{
int[] data = new int[100];
int len = 0;
int capacity = 0; // 스택의 크기
void create(int m){
capacity = m;
}
void push(int item){
if(len >= capacity){
System.out.println("Stack Overflow!");
}
else{
data[len++] = item;
}
}
void pop(){
if(len <= 0){
System.out.println("Stack Underflow!");
}
else{
data[len-1] = 0;
len--;
}
}
int top(){
// 스택의 가장 위에 있는 값을 반환
// 단, 스택에 아무것도 없다면 -1을 반환
if(len <= 0){
return -1;
}
else{
return data[len-1];
}
}
int size(){
return len;
}
}
public class DataStructureStack {
public static void main(String[] args) {
Stack s1 = new Stack();
s1.create(2);
s1.push(1);
s1.push(2);
s1.push(3); //overflow
s1.push(4); //overflow
System.out.println(s1.top()); //2
s1.pop();
System.out.println(s1.top()); //1
s1.pop();
s1.pop();
s1.pop(); // underflow
System.out.println(s1.size()); // 0
}
}
'자료구조, 알고리즘 > 기본다지기' 카테고리의 다른 글
| [그래프] 그래프의 기본 (0) | 2018.09.08 |
|---|---|
| [자료구조] 큐(Queue) (1) | 2018.09.05 |
| [다이나믹] 거듭제곱 구하기 (0) | 2018.08.20 |
| [다이나믹] 팩토리얼 구하기 (0) | 2018.08.20 |
| [수학] 1부터 N까지 소수 구하기(에라토스테네스의 체) (0) | 2018.08.17 |
Comments