본문 바로가기
자료구조

자료구조 : 자바로 스택(Stack) 구현하기

by 발개발자 2020. 12. 21.
반응형

스택이란 무엇인가. 

 

 

위와 같이 한쪽이 막혀있는 형태의 자료구조로 생각하면 된다.

 

따라서 데이터의 삽입과 삭제가 스택구조에서 제일 꼭대기인 "TOP"에서만 이루어 진다.

이러한 특성때문에 제일 처음 들어온 데이터가 제일 마지막으로 출력되며

이것을 First In Last Out  => FILO라고 표현하기도 한다.

 

자바로 구현하기 앞서 객체를 정의해보자.

 

1. Stack 이라는 객체가 있다. Stack은 "TOP" 즉, 꼭대기의 값을 기억하는 특성이 있다. 그리고 값을 삽입하는 push, 값을 출력하는 pop, 비어있는지 확인하는 isEmpty라는 세 가지 행위를 할 수 있다.

 

2. Stack 안에는 값을 기억하는 Node라는 객체가 있다. Node의 특성으로는 값을 가지며, 본인보다 바로 아래의 노드의 주소값을 기억하고 있다.

 

=> 위와 같은 두개의 객체로만 Stack을 구현해보자.

 

1. Stack이라는 객체 안에 세가지 메소드가 정의 된다.

 

 

 

 

 

 

2. Stack 안에는 값을 값을 기억하고 아래의 노드주소를 기억하고 있는 Node라는 객체가 정의된다. 그리고 꼭대기의 값을 기억하는 top을 정의한다.

 

 

 

 

 

3. push라는 행위를 하였을 때, item 이라는 데이터를 받아오고 새로운 Node객체를 생성 시켜준다. 생성자에 의해 Node의 값은 item 이 되고, 해당 노드가 들어오기전 꼭대기인 top이라는 node를 nextAdrs(아래 주소값)으로 받아주며, 해당 노드는 이제 최상단인 top에 위치한다.

 

 

 

4. pop이라는 행위를 하였을 때, 가장 꼭대기인 top의 값인 data를 리턴시켜주고 가장 꼭대기인 top은 출력되었으므로 아래노드인 nextAdrs로 바뀌게 된다.

 

 

 

5. isEmpty라는 행위를 하였을 때, 꼭대기인 top이 null이면 어떠한 Node도 쌓인 상태가 아니기 때문에 true를 리턴해준다.

 

 

 

 

6. 전체소스 - 객체들의 행위로직을 구현한다.  

 

 

반응형

댓글