오늘 수업시간에 스택에 대해 처음 배웠는데, 


스택에 char타입 데이터 넣고 스택에 있는 데이터 전부 출력하는 코드입니다. (push, print)


출력 결과물이 Cats 가 되어야 맞는데, ????요런 식으로 출력이 되는데 


어느 부분을 어떻게 수정해야 할지 모르겠습니다. 


#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

#include <stdlib.h>

#define N 10


typedef char element;


typedef struct

{

element data[N];

int top;

} StackType;


void init(StackType* a) 

{

a->top = -1;

}


int isEmpty(StackType* a) 

{

return a->top == -1;

}


int isFull(StackType* a) 

{

return a->top == N;

}


void push(StackType* a, element e) 

{

if (isFull(a)) 

printf("Overflow");

else

{

a->top += 1;

a->data[a->top] = e;

}


}


element pop(StackType* a) 

{

if (isEmpty(a))

{

printf("Empty");

return -1;

}

element e = a->data[a->top];

a->top--;

return e;


}


element peek(StackType* a) 

{

if (isEmpty(a))

{

printf("Empty\n");

return -1;

}

return a->data[a->top];

}




void print(StackType* a) 

{

for (int i = 0; i <= a->top; i++)

{

char ch = a->data[i];

printf("%c ", a->data[i]);

}

}



int main(void)

{

StackType a;

init(&a);


push(&a, "C");

push(&a, "a");

push(&a, "a");

push(&a, "d");


print(&a);


return 0;


}