如题,销毁之后还能继续入队、出队,代码如下:
Status DestroyQueue(LinkQueue *Q){
QueueNode *p=Q->head->next, *pnext;
while(p){
pnext=p->next;
free(p);
p=pnext;
}
Q->head =Q->rear;
Q->head->next =NULL; //设置头结点的指针域为空
return OK;
}
Status EnQueue(LinkQueue *Q, ElemType e){ //入队操作
QueueNode *newnode=(QueueNode*)malloc(sizeof(QueueNode));
if(!newnode)
return ERROR;
newnode->data = e;
Q->rear->next=newnode;
Q->rear=newnode;
newnode->next=NULL;
return OK;
}
Status DeQueue(LinkQueue *Q,ElemType *e){ //出队操作
QueueNode *deletenode=Q->head->next;
if(Q->head == Q->rear)
return ERROR;
*e = deletenode->data;
Q->head->next=deletenode->next;
free(deletenode);
if (!Q->head->next) //如果要出队的只有最后一个结点,相当于rear也被删了,所以需要一个判断
Q->rear = Q->head;
return OK;
}
请各位大佬指教,感激不尽!