C言語なら、俺に聞け! <20>
■ このスレッドは過去ログ倉庫に格納されています
0701デフォルトの名無しさん
NGNGchar *data; /* 可変長のデータへのポインタ */
struct elem *next;
};
typedef struct {
struct elem *head;
struct elem *tail;
} queue;
int queue_init(queue *q)
{
struct elem *dummy_head = malloc(sizeof(struct elem));
if (dummy_head == NULL) {
return -1;
}
dummy_head->next = NULL;
q->head = q->tail = dummy_head;
return 0;
}
int is_empty(queue *q)
{
return q->head == q->tail;
}
int enq(queue *q, char *item)
{
struct elem *new_elem = malloc(sizeof(struct elem));
if (new_elem == NULL) {
return -1;
}
new_elem->data = item;
new_elem->next = NULL;
q->tail->next = new_elem;
q->tail = new_elem;
return 0;
}
char *deq(queue *q)
{
struct elem *first;
char *value;
if (is_empty(q)) {
return NULL;
}
first = q->head->next;
value = first->data;
q->head->next = first->next;
free(first);
return value;
}
■ このスレッドは過去ログ倉庫に格納されています