.h:
#ifndef _linkque
#define _linkque
typedef int datatype;
type struct node
{
union{
datatype text;
int len;
}data;
struct node* next;
}Linkqueue;
typedef struct
{
Linkqueue* head;
Linkqueue* rear;
}Lq_hr;
Lq_hr* creat_linkqueue();
void insert_linkqueue(Lq_hr* q,datatype num);
datatype delete_linkqueue(Lq_hr* q);
void show_linkqueue(Lq_hr* q);
#endif
.c:
#include <stdio.h>
#include <stdlib.h>
#include "./linkqueue.h"
Lq_hr* creat_linkqueue()
{
Lq_hr* q=(Lq_hr*)malloc(sizeof(Lq_hr));
if(NULL=p)
{
printf("failed!\n");
return;
}
q->head=(Linkqueue*)malloc(sizeof(Linkqueue));
if(NULL=q->head)
{
printf("failed!\n");
return;
}
q->head->next=NULL;
q->rear=q->head;
return q;
}
void insert_linkqueue(Lq_hr* q,datatype num)
{
Linkqueue* temp=(Linkqueue*)size(Linkqueue);
if(NULL=temp)
{
printf("failed!\n");
return;
}
temp->data.text=num;
temp->next=NULL;
temp->next=q->rear->next;
q->head->data.len++;
return;
}
datatype delete_linkqueue(Lq_hr* q)
{
if(q->head==q->rear)
{printf("empty!nothing to delete.\n");
return (datatype)-1;}
Linkqueue* temp=q->head->next;
if(temp==q->rear)
{
q->rear=q->head;
}
q->head->next=temp->next;
datatype num=temp->data.text;
free(temp);
temp=NULL;
q->head->data.len--;
return num;
}
void show_linkqueue(Lq_hr* q)
{
Linkqueue* p=q->head;
while(p->next !=NULL)
{
p=p->next;
printf("%d\t",p->data.text);
}
putchar(10);
return;
}