【发布时间】:2016-03-11 07:36:30
【问题描述】:
我必须在queue 中实现入队操作。在节点结构中,dataPtr 的datatype 是void*。
这是我的代码,但是在调用这个函数时我应该如何传递参数?
typedef struct node
{
void* dataptr;
struct node* next;
} QUEUE_NODE;
typedef struct
{
QUEUE_NODE* front;
QUEUE_NODE* rear;
int count;
}QUEUE;
//createqueue
QUEUE* createQueue(void)
{
QUEUE* queue;
queue = (QUEUE*)malloc(sizeof(QUEUE));
if (queue)
{
queue->front = NULL;
queue->rear = NULL;
queue->count = 0;
}
return queue;
}
//Enqueue
bool enqueue(QUEUE* queue, void* itemptr)
{
QUEUE_NODE* newptr;
if (!(newptr = (QUEUE_NODE*)malloc(sizeof(QUEUE_NODE))))
return false;
newptr->dataptr = itemptr;
newptr->next = NULL;
if (queue->count == 0)
queue->front = newptr;
else
queue->rear->next = newptr;
(queue->count)++;
queue->rear = newptr;
printf("inserted value is%d\n", newptr->dataptr);
return true;
}
【问题讨论】:
标签: c data-structures queue