Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 타입스크립트
- invalid_grant
- 프론트엔드 과제
- api 요청 수 제한
- 파일 url
- 우아한테크코스
- 스프링부트
- 음악 url 파일 다운로드
- TypeORM
- concurrency limit
- 프로그래머스
- 유효시간 설정 url
- 딥다이브
- 프론트엔드
- api 비동기처리
- 코멘토 #코멘토실무PT #실무PT후기 #실무강의 #리액트강의 #웹프로그래밍 #react #웹개발실무
- Dev-Matching
- 검색
- oauth
- bucket4j
- 프리코스
- 모던 자바스크립트
- redis
- this
- 자바스크립트
- AWS
- Deep Dive
- 우아한 테크코스
- compateto
- NestJS
Archives
- Today
- Total
개발 알다가도 모르겠네요
스택을 간단하게 알아보자 본문
728x90
스택의 사용 사례
- 재귀 알고리즘
- 웹브라우저 뒤로가기
- 실행취소
- 괄호검사
- 후위표기법
- dfs(깊이우선탐색)
배열
static int[] stack;
static int size = 0;
static void push(int item){
stack[size++] = item;
}
static int pop(){
if(size==0)
return -1;
int res = stack[size-1];
stack[size-1] = 0;
size--;
return res;
}
static int size(){
return size;
}
static int empty(){
if(size==0)
return 1;
return 0;
}
static int top(){
if(size==0)
return -1;
return stack[size-1];
}
연결리스트
import java.util.EmptyStackException;
public class MyStack {
private Node top;
public MyStack() {
this.top = null;
}
public class Node {
private String data;
private Node nextNode;
public Node(String data) {
this.data = data;
this.nextNode = null;
}
}
public String push(String data) {
Node node = new Node(data);
node.nextNode = top;
top = node;
return data;
}
public String pop() {
String data = peek();
top = top.nextNode;
return data;
}
public String peek() {
if (top == null)
throw new EmptyStackException();
return top.data;
}
public boolean empty() {
return top == null;
}
public int search(Object o) {
int index = 1;
Node tempTop = top;
while (tempTop != null) {
if (tempTop.data.equals(o))
return index;
tempTop = tempTop.nextNode;
index++;
}
return -1;
}
}
'자료구조' 카테고리의 다른 글
해시 테이블(Hash Table)을 간단하게 알아보자. (0) | 2021.02.23 |
---|