#include<stdio.h>#include<stdlib.h>//#define NULL 0typedef int DataType;typedef struct Node{//定义一个节点 DataType data; struct Node *link;}*Noder; typedef struct linklist{//定义链表队列的头指针&尾指针 Noder front; Noder rear;}*plinklist; plinklist creatLinkList(void){//初始化一个链表队列 plinklist p; p=(plinklist)malloc(sizeof(struct Node)); if(!p) exit(1); else { p->front=NULL; p->rear=NULL; } return p;}//initLinkList void intoLinklist(plinklist pl,DataType e){//向队列一个节点 Noder p; p=(Noder)malloc(sizeof(struct Node)); if(!p) exit(1); p->data=e; p->link=NULL; if(pl->front==NULL) { pl->front=p; pl->rear=p; } else { pl->rear->link=p; pl->rear=p; }}//intoLinklist int linklistempty(plinklist pl){ return(pl->front==NULL);}//iflinklistempty DataType dellinklist(plinklist pl){//删除队列头节点 Noder p; DataType e; p=pl->front; if(pl->front==pl->rear) { pl->front=NULL; pl->rear=NULL; } else pl->front=p->link; e=p->data; free(p); return e;}//dellinklistDataType getheadlinklist(plinklist pl){ return(pl->front->data);}int main(void){ plinklist p; int bol; DataType i; p=creatLinkList(); bol=linklistempty(p); intoLinklist(p,1); intoLinklist(p,2); intoLinklist(p,3); intoLinklist(p,4); intoLinklist(p,5); i=getheadlinklist(p); dellinklist(p,i); return 0;}

评论