티스토리 뷰
Stack 이란?
- 상자에 물건을 쌓아 올리 듯이 데이터를 쌓는 자료구조이며, 삽입과 삭제를 리스트의 한쪽(top)에서 만 한다.
- LIFO(Last In First Out) 구조
Stack 구현
package study;
public class Stack {
private int[] elements;
private int top = 0;
private int size = 2;
/**
* Stack 생성
* default size =16
*/
public Stack(){
elements = new int[size];
}
public Stack(int data){
elements = new int[size];
elements[top++] = data;
}
// push
public void push(int data){
// 용량이 초과할 경우 크기 확장 후 기존 데이터 migration
if(top == elements.length){
System.out.println("[사이즈 확장] Size : " + size +" -> " + (top+5));
size = top +5;
int[] extendElements = new int[size];
// migrate
for(int i=0; i<top; i++){
extendElements[i] = elements[i];
}
elements = extendElements;
}
// System.out.println("top:"+top);
System.out.println("데이터 추가 : "+data);
elements[top++] = data;
}
// pop
public int pop(){
if(top == 0) {
System.out.println("데이터가 존재하지 않습니다.");
return -1;
}
else {
int num = elements[--top];
elements[top] = 0;
return num;
}
}
// print
public void print(){
for(int i=0; i<top; i++){
System.out.print(elements[i]+" ");
}
System.out.print( "<- top");
System.out.println();
}
}
'Study > Java' 카테고리의 다른 글
[스터디 4주차] Queue (0) | 2022.01.02 |
---|---|
[스터디 4주차] LinkedList로 Stack 구현 (0) | 2022.01.02 |
[스터디 4주차] LinkedList (0) | 2022.01.02 |
[스터디 4주차] JUnit5 (0) | 2022.01.02 |
[스터디 4주차] 선택문/반복문 (0) | 2022.01.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- https
- 리스트
- 네트워크
- 파이썬
- 보험
- 스터디
- 정렬
- 자바
- 자료구조와알고리즘 23강
- 리스트 복사
- 이진탐색
- Greedy sort
- 코드업 기초
- 연결리스트활용
- 자료구조
- It
- SW
- 이차 리스트
- 프로그래머스강의
- CS 스터디
- 리스트함축
- 프로세스 주소공간
- 리스트2
- CS
- 프로그래머스
- 데이터베이스
- 완전탐색
- 알고리즘
- CS.
- 운영체제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함