|
#include <stdio.h>
#include <stdlib.h>
#define EMPTY 0
#define FULL 10000
typedef char data;
typedef enum {F, T} boolean;
struct elem{
data d;
struct elem *next;
};
typedef struct elem elem;
struct stack{
int cnt;
elem *top;
};
typedef struct stack stack;
void initialize(stack *stk)
void push(data d, stack *stk);
data pop(stack *stk);
data top(stack *stk);
boolean empty(const stack *stk);
boolean full(const stack *stk);
main()
{
char str[] = "My name is joanna kelly!";
int i;
stack s;
initialize(&s);
printf("In the string : %s\n",str);
for(i = 0; str[i] != '\0'; i++)
if(!full(&s))
push(str[i], &s);
printf("From the stack : ");
while(!empty(&s))
putchar(pop(&s));
putchar('\n');
}
void initialize(stack *stk)
{
stk->cnt = 0;
stk->top = NULL;
}
void push(data d, stack *stk)
{
elem *p;
p = (elem *)malloc(sizeof(elem));
p->d = d;
p->next = stk->top;
stk->top = p;
stk->cnt++;
}
data pop(stack *stk)
{
data d;
elem *p;
d = top(stk);
p = stk->top;
stk->top = stk->top->next;
stk->cnt--;
free(p);
return d;
}
data top(stack *stk)
{
return(stk->top->d);
}
boolean empty(const stack *stk)
{
return((boolean) (stk->cnt == EMPTY));
}
boolean full(const stack *stk)
{
return((boolean) (stk->cnt->cnt == FULL));
}
에러가 나네여....잘 안되여.. 아래 조건에 맞게 C++로 바꾸어야 하는데... 이거 소스 짜는데두 너무 오래걸렸어여// 근데 에러 나여.. 잉잉잉잉~~~ 도와주세여...
1. class화 하기
변수: top, cnt => private 선언
함수들 => 멤버함수
2. str[]
사용자가 입력받아서 push
3. 출력할때(pop할때) 대문자를 소문자로 나오게
|