본문내용
r.*/
while (!emp(&tmp))
{
d= pop(&tmp); /* pop data from tmp */
if (!full(str))
push(d, str); /* push data on str */
} /* while(!emp(&tmp)) */
} /* FUCTION fill(stack *str, const char *str) */
/* print.c */
#include"polish.h"
void prn_data(data *dp)
{
switch (dp -> kind)
{
case operator: printf("%s%3c \n",
"kind: operator op:", dp -> u.op);
break;
case value: printf("%s%3d \n",
"kind: value val:", dp -> u.val);
break;
}/* switch (dp -> kind) */
}/* FUCTION prn_data(data *dp) */
void prn_stack(stack *str)
{
data d;
printf("stack count: %3d%s", str -> cnt,
(str -> cny ==0 ) ? "\n" : " ");
if (!empty(str))
{
d = pop(str); /* pop the data */
prn_data(&d); /* print the data */
prn_stack(str); /* recursive call */
push(d,str); /* push the data */
}/* if */
}/* FUCTION prn_stack(stack *str) */
while (!emp(&tmp))
{
d= pop(&tmp); /* pop data from tmp */
if (!full(str))
push(d, str); /* push data on str */
} /* while(!emp(&tmp)) */
} /* FUCTION fill(stack *str, const char *str) */
/* print.c */
#include"polish.h"
void prn_data(data *dp)
{
switch (dp -> kind)
{
case operator: printf("%s%3c \n",
"kind: operator op:", dp -> u.op);
break;
case value: printf("%s%3d \n",
"kind: value val:", dp -> u.val);
break;
}/* switch (dp -> kind) */
}/* FUCTION prn_data(data *dp) */
void prn_stack(stack *str)
{
data d;
printf("stack count: %3d%s", str -> cnt,
(str -> cny ==0 ) ? "\n" : " ");
if (!empty(str))
{
d = pop(str); /* pop the data */
prn_data(&d); /* print the data */
prn_stack(str); /* recursive call */
push(d,str); /* push the data */
}/* if */
}/* FUCTION prn_stack(stack *str) */