數據類型如下:
typedef struct LNode{
ElemType data;
struct LNode *next;
}*LinkList;
//入隊操作 //出隊操作
Status enQueue(LinkList & L,ElemType e) Status DeQueue(LinkList &L,ElemType &e)
{ {
s = (LinkList)malloc(sizeof(LNode)); if(!L) return ERROR; //如果鏈表空,返回
if(!s) return ERROR; front = L->next; //其中L設爲尾指針
s->data = e; e = front->data; //front爲頭指針
if(!L) //L爲尾指針 if(front = L) //只有一個結點
{ {
L = s; L = NULL; //鏈表致爲空
L->next = L; }else{
}else L->next = front->next;
{ }
s->next = L->next; free(front);
L->next = s; return OK;
} }
return OK;
}
爲了方便看入隊和出對的對比,把兩個操作寫在了並列的位置。L爲鏈表的指針同時也是隊列的尾指針,可以方便地進行入隊和出對的操作。