一、定义一个节点的结构体
tydef struct node
{
unsigned long int data;
struct node *next;
}node_t;
tydef struct queue
{
node_t *head;
node_t *tail;
int size;
}queue_t;
二、实现入队出队操作
入队:
queue_t queue_in(queue_t q,unsigned long int data)
1.1第一步:首先判断头结点是否为空,如果为空
if(q->head == NULL)
{
创建第一个节点,初始化为空,并让头结点和尾节点指向它
node_t *temp = (node_t*)malloc(sizeof(node_t));
temp->data = data;
q->head = q->tail = temp;
}
1.2如果头结点不为空
else
{
创建一个节点并初始化,让尾节点指向头结点下一个节点
node_t* temp = (node_t*)malloc(sizeof(node_t));
temp->data = data;
temp->next = NULL;
q->tail->next = temp;
q->tail = temp;
}
return q;
出队:
2.1创建一个节点指向头结点
node_t* temp = (node_t*)malloc(sizeof(node_t));
temp = q->head;
2.2将头结点指向当前节点的下一个节点
q->head = temp->next;
2.3打印出当前节点并释放当前节点
printf(“%ld\n”,temp->data);
free(temp);