/*链队的建立和插入输出*/
typedef struct node{
int data;
struct node *next;
}node;
typedef struct linkqueue{
struct node *pfront;
struct node *prear;
}linkqueue;
void init_queue(linkqueue *lq){
lq->pfront = NULL;
lq->prear = NULL;
}
bool in_queue(linkqueue *lq,int val){
node *pnew = (node *)malloc(sizeof(node));
if(NULL == pnew)
return false;
pnew->data = val;
pnew->next = NULL;
if(lq->pfront == NULL && lq->prear == NULL){
lq->pfront = pnew;
lq->prear = pnew;
}else{
lq->prear->next = pnew;
lq->prear = pnew;
}
return true;
}
bool out_queue(linkqueue *lq,int *pval){
node *pcur = NULL;
if(lq->pfront == NULL && lq->prear == NULL)
{
printf("队列为空\n");
return false;
}
pcur = lq->pfront;
*pval = pcur->data;
if(lq->pfront->next == NULL){
lq->prear = NULL;
}
lq->pfront = lq->pfront->next;
free(pcur);
pcur = NULL;
return true;
}
链队的基本操作
最新推荐文章于 2022-04-02 14:40:19 发布