이번 과제는 stack 이라는 자료구조를 활용하는 문제입니다. stack이란 후입선출(LIFO, Last In, First Out) 구조의 자료구조로 처음에 들어간 값은 가장 마지막에 나오게 됩니다. stack은 다음과 같은 연산을 제공합니다. 1\. empty : 스택이 비어있다면 1을 리턴하고\, 비어있지 않다면 0을 리턴합니다\. 2\. size : 스택의 크기를 리턴합니다\. 3\. push : 스택의 최상단에 값을 넣습니다\. 4\. pop : 스택의 최상단에 있는 값을 제거합니다\. 파이썬의 list\.pop과는 달리\, 값을 반환하지 않습니다\. 비어있는 stack에 pop을 시도하면 의도하지 않은 동작이 발생할 수 있습니다\. 5\. top : 스택의 최상단에 있는 값을 리턴합니다\. 마찬가지로 비어있는 stack에 top을 시도하면 의도하지 않은 동작이 발생할 수 있습니다\. stack.h는 추가로 작성해야할 TODO가 없이 그대로 사용하시면 됩니다.(필수 사용) 헤더 파일 사용이 낯선 분들께서는 강의 자료실에 있는 스켈레톤 코드를 이용해주세요 이번 문제는 2023년 컴퓨터 프로그래밍 및 입문 수업의 과제에서 모티브를 얻어 제작되었습니다. 시험 기간 전 마지막 멘토링 과제이며 제출 마감일은 10월 11일(일요일)까지입니다.
첨부 파일
stack.h

댓글 목록

<span>stack의 함수들은 stack의 포인터를 인자로 받으므로 &stack 과 같이 사용해야 합니다.</span> <span>단, stack\_push 의 경우 stack에는 &를 붙이지만, push하고자 하는 값에는 붙이지 않습니다.</span> <span>사용 예시</span> if(stack\_empty(&stack)) {...} if(stack\_size(&stack)>1) {...} <span>stack\_push(&stack,10);</span> stack\_pop(&stack); long long a=stack\_top(&stack);