C 언어의 배열을 이용한 스택 구조


1. 스택 구조란?
스택 구조는 (First In Last Out)형식의 프로그램으로 데이터를 저장했다 출력할대 사용합니다.
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
10개의 칸이 있다고 할 때

1개의 데이터를 인풋해줄 때마다 앞에칸부터 데이터가 차 갑니다.
[a][ ][ ][ ][ ][ ][ ][ ][ ][ ] <- 빈 스택에 a를 입력한 후의 모습
[a][b][ ][ ][ ][ ][ ][ ][ ][ ] <- a가 입력된 스택에 b를 입력한 후의 모습
(a,b를 차례대로 입력할때의 스택이 차는 모습)

반면 1개의 데이터를 인풋해 줄 때에는 뒤에칸부터 데이터가 출력됩니다.
[a][ ][ ][ ][ ][ ][ ][ ][ ][ ] .... 출력 b <- a,b가 입력되 있던 스택을 1회 출력한 모습
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ] .... 출력 a <- a가 입력되어 있던 스택을 1회 출력한 모습
(a,b가 채워져 있는 스택을 차례대로 출력할때 스택이 비워지는 모습. 출력값은 b,a가 된다)

이러한 구조는 함수의 재귀호출에서 가장 마지막에 호출된 함수가
가장 먼저 처리되는 것과 매우 유사한 모습을 보입니다.


2. 과제
C언어와 배열을 이용하여 스택 구조를 만들어라.

제한 : 단 1개의 변수만을 전역 변수로 사용할 수 있음
         input은 char형 인자 하나를 변수로 받아 배열에 집어 넣어야함
         pop은 char형 인자 하나를 반환받아 화면에 출력해야 함.
         스택구조에 대한 책을 참조하지 않고 작성할것

힌트 : 함수는 main, input, pop 세개면 충분함
         첨부 파일을 보고 최대한 모방할것. (미리 작성해 놓은 것이라 윈도우 버전임)


3. 제출할 목록
 - c로짠 원본 소스
 - gcc로 코딩한 실행파일

4. 제출기한
 7월 6일 정오까지

5. 제출장소
 이메일 (sjm8824 네이버)
Posted by 청음