자료구조 스택인데요..
main function을 printf로 바꿔야하는데
어느부분이 메인 함수인가요?
ㅠㅠㅠㅠ
#include <stdio.h>
#include <malloc.h>
typedef struct _item
{
char * name;
unsigned int price;
}item;
typedef struct _list
{
item * item_array;
int current;
int size;
}list;
list * makestack(int size);
int isfull(list *p);
void push(list *p, item item1);
void pop(list *p);
int main (void)
{
item item1;
list *p;
list *q;
int p_size = 10;
int q_size = 50;
p = makestack(p_size);
q = makestack(q_size);
for (int i = 0; i < p_size; i ++)//초기값은0 p_size보다 크면 계속 증가
{
if ( i % 2)
{
item1.name = "banana"; // even index: 0, 2, 4, ...
item1.price = 2000 + i * 100;
push(p, item1);
}
else // odd index 1, 3, 5,
{
item1.name = "apple"; // even index: 0, 2, 4,
item1.price = 4000 + i * 100;
pop(p, item1);
}
}
for (int i = 0; i < p_size; i ++)
{
printf("p->item_array[%d].name is %s n", i, p->item_array[i].name);
printf("p->item_array[%d].price is %d n", i, p->item_array[i].price);
}
pop(p);
pop(q);
getchar();
}
list * makestack(int size)
{
list *p;
p = (list *) malloc(sizeof(list) * 1);
p->item_array = (item *) malloc(sizeof(item) * size);
p->current = -1;
p->size = size;
return p;
}
int isfull(list *p)
{
if(p->current == (p->size) -1)
return 1;
else
return 0;
}
void push(list *p, item item1)
{
if(isfull(p))
return;
p->current++;
p->item_array[p->current] = item1;
}
void pop(list *p)
{
free(p->item_array);
free(p);
}
int main (void) 메인이라 적혀있네요;
list * makestack(int size) 이거 위의 중괄호 블록 입니다. 메인 함수도 모르시는가요???