楊輝三角的鏈佇列解法(鏈佇列操作標頭檔案)
阿新 • • 發佈:2019-02-01
//LinkQueue.h #include<stdlib.h> #define TRUE 1 #define FALSE 0 #define datatype int struct node { datatype data; struct node *next; }; typedef struct node LinkListNode; typedef struct { LinkListNode *front; LinkListNode *rear; }LinkQueue; //LinkQueue *lq; //初始化 void Initialize_LinkQueue(LinkQueue *lq) { lq->front=(LinkListNode *)malloc(sizeof(LinkListNode)); lq->front->next=NULL; lq->rear=lq->front; } //判斷隊空 int IsEmpty_LinkQueue(LinkQueue *lq) { if(lq->front==lq->rear) return TRUE; else return FALSE; } //取隊頭結點值 int Get_LinkQueue(LinkQueue *lq, datatype *x) { if(IsEmpty_LinkQueue(lq)) return FALSE; else { x=&(lq->front->next->data); return TRUE; } } //入隊 void Insert_LinkQueue(LinkQueue *lq, datatype x) { lq->rear->next=(LinkListNode *)malloc(sizeof(LinkListNode)); lq->rear=lq->rear->next; lq->rear->data=x; lq->rear->next=NULL; } //出隊 LinkListNode *Delete_LinkQueue(LinkQueue *lq) { LinkListNode *s; if(IsEmpty_LinkQueue(lq)) return NULL; else { s=lq->front->next; if(s->next==NULL) { lq->front->next=NULL; lq->rear=lq->front; } else { lq->front->next=s->next; } return s; } }