티스토리 뷰
* 타 블로그 글을 참조 한 것이 아닌 독학을 통해 이해한 내용을 작성한 것이기 때문에 , 지적은 성대히 환영합니다 ! *
스택 자료구조에 대해서 알아보겠다.
스택 자료구조의 대표적인 특징은 후입선출의 개념이다.

그림처럼 A부터 D 까지 차례대로 쌓인다. 물론 실제 데이터가 저런 모양으로 쌓이는건 아니고 이해를 돕기위해 저렇게
그린다.
맨 위의 요소를 top 이라 부른다.
차례대로 쌓이는 구조이기 때문에 top 에서만 요소를 추가하고 뺄 수 있다는 점을 명심해야한다.
요소를 추가할 땐 push , 뺄 땐 pop 을 사용하여 요소를 제거한다.
이러한 자료구조는 가장 최근의 자료를 찾아오거나 게임에서 히스토리를 유지하고 이를 무를때 사용할 수 있다.
요소를 추가하고 빼는 코드를 봐보자.
먼저 스택 배열에 조건을 주기 위해 isFull 메서드를 만든다.
public boolean isFull() {
if(top == arrayStack.ARRAY_SIZE) {
return true;
}
else return false;
}
top 즉 맨 마지막 요소가 ARRAY_SIZE 와 동일 하다면 (꽉 찼다면)
true 를 반환한다.
다음은 추가코드다.
push 추가 코드.
public void push(int data) {
if(isFull()) {
System.out.println(" stack is full.");
return ;
}
else arrayStack.addElement(data);
top++;
}
배열이 꽉 찼는지 확인하고
아니라면 배열에 배열에 값을 추가하고 (addElement) ,
top 을 ++ 한다.
이유는 isFull 을 확인해보라.
다음은 pop 코드다.
public void pop() {
if(isEmpty()) {
System.out.println("stack is empty.");
return;
}
else arrayStack.removeElement(--top);
}
isEmpty는 배열에 데이터가 하나도 없는지 확인하는 메서드다.
--top 은 top 에서 - 를 하고 그다음 count -1 하라는 뜻이다.
'Java 자료구조' 카테고리의 다른 글
2) LinkedList 링크드리스트 (0) | 2022.07.18 |
---|---|
1) Array 배열 (0) | 2022.07.18 |
자바 자료구조 (Array , LinkedList , Stack , Queue) (0) | 2022.07.18 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Java #객체 #자바기초 #자바
- 마법사 상어와 비바라기 자바
- k8s
- 단지번호붙이기 자바
- k8s object
- docker
- EB
- AWS
- 자료구조
- StatefulSet
- Java #코린이 #자바
- 쿠버네티스 개념
- 프로그래머스
- 쿠버네티스 오브젝트
- 코딩테스트
- java #스프링 #spring #server
- 단지번호붙이기 JAVA
- 행렬 테두리 회전하기 자바
- EC2
- dfs
- 무중단배포
- 백준 상자 넣기 자바
- 백준 그림 자바
- 자바
- 구간합구하기
- 백준 상자넣기
- ECR
- 백준
- java
- 백준 1965 풀이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함