기본적으로 스택이란
자료 구조의 하나로서 자료의 삽입과 삭제가 한쪽 끝에서만 일어나는 선형 목록을 말한다.
스택의 삽입 삭제가 일어나는 곳을 Top이라 하고
스택을 꺼낼 때를 Pop이라하고, 넣을 때를 Push라고 부른다.
스택은 나중에 들어간 자료가 먼저 나오기 때문에 후입선출이라고도 한다.
<전체 코드 구현>
5 ~ 8줄까지는 기본적으로 구현하기 위해 사용된 변수를
초기화 시켜 놓은 것이다.
Pos는 스택이 가리키는 위치를 알기 위해서 만들어 놓은 것이다.
*위의 그림은 pos의 위치가 어떤 식으로 있는지 보여주기 위해서 그린 것*
Pos가 증가 할 수록 다음 배열을 가르키게 코드를 구현해야한다.
한마디로 Pos는 top과 같은 의미로 삽입과 삭제가 되는 부분을 알기위해서 만든것이다.
13 ~ 33 줄은 While문으로 종료를 하기 전 까지 반복적으로 데이터를 받고 출력하기 위해서 만들었다.
// 3이상의 숫자를 누르면 종료됨
1번은 입력을 받는 부분으로
숫자를 입력하여 변수 input에 숫자를 입력 받아주고
Pos를 증가 시킨 후에 stack배열에 입력 받은 input을 넣어주면 스택이 쌓인다.
2번은 출력하는 부분으로
스택은 후입선출이므로 나중에 들어간 값이 먼저나와야한다.
그러므로 Pos가 -1이면 stack안에는 아무것도 없다는 것이 되닌까
while문은 Pos의 값이 -1이 되면 종료되도록 만들어야한다.
일단 맨위의 stack을 꺼내야 하닌까
현재의 가장 맨위의 Pos의 값을 출력해준다.
그리고 Pos의 값을 하나씩 줄여주면서 -1이 될 때까지 반복하여 출력해주면
입력 받은 값의 스택으로 출력 할 수 있다.
'PROGRAMING📚 > 자료구조📑' 카테고리의 다른 글
알고리즘의 성능 분석 (0) | 2019.12.23 |
---|---|
추상 데이터 타입 (0) | 2019.12.22 |
자료구조(Data Structure)와 알고리즘 (0) | 2019.12.22 |
이진트리와 재귀함수 사용 (0) | 2019.02.13 |
포인터를 이용해서 연결리스트 구현하기 (0) | 2019.02.13 |
댓글