#數據結構#僅有尾指針的循環單鏈隊列

/*		無頭節點只尾節點指針的鏈隊		*/
typedef struct DNode{
ElemType data;
struct DNode *rear;
struct DNode *next;
} Linklist;
void initQueue(LinkList *&rear){
	rear=NULL;
}
bool queueEmpty(LinkList *rear){
	return(rear==NULL);
}
//進隊
void enQueue(LinkList *&rear,ElemType x){
	LinkList *p;
	p=(LinkList *)malloc(sizeof(LinkList));
	p->data=x;
	if(rear==NULL){
		p->next=p;
		rear=p;
	}
	else{
		p->next=rear->next;
		rear->next=p;
		rear=p;
	}
} 
//出隊
bool deQueue(LinkList *&rear,ElemType &x){
	LinkList *q;
	if(rear==NULL){
		return false;
	}
	else if(rear->next==rear){
		x=rear->data;
		free(rear);
		rear=NULL;
	}
	else{
		q=rear->next;
		x=q->data;
		rear->next=q->next;
		free(q);
	}
	return true;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章