c언어 스택에 대해서 질문 드립니다.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STACK_SIZE 100
typedef char Element;
Element data[MAX_STACK_SIZE];
int top;
void error( char str[] )
{
printf("%s\n",str);
exit(1);
}
void init_stack() { top= -1;}
int is_empty() { return top == -1; }
int is_full() { return top == MAX_STACK_SIZE-1; }
int size() { return top+1;}
void push ( Element e )
{
if( is_full() )
error("스택 포화 에러");
data[++top] = e;
}
Element pop ()
{
if( is_empty() )
error("스택 공백 에러");
return data[top--];
}
Element peek()
{
if( is_empty() )
error ("스택 공백 에러");
return data[top];
}
이게 일단 스택에서 사용되는 함수 써둔거구요 문자열을 입력받아서 그대로 역으로 출력하고싶은데
분명 배열 형태로 문자를 받아서 push에 넣어 스택에 저장한뒤에 그걸 pop으로 출력해내는 구조인건
머릿속에 그려지는데 뭔가 만드려니까 손이 안잡히네요..
int main()
{
int i;
init_stack();
char a[100];
printf("문자열 입력 >");
scanf("%s", a);
for(i=0;a[i]!='\0';i++)
{
push(a);
}
for(i=0;i<100;i++)
{
printf("%s", pop(a));
}
return 0;
}
도저히 감이 안와서 이렇게 끄적여봤는데 역시나 컴파일이 안되네요 push(a); 이부분이랑
void push ( Element e ) 이 부분에서 오류가 나는거 같은데 어떻게 고쳐야할지 감이 안잡혀요 도와주세요 ㅠㅠ