cpp链队

 

cpp链队_第1张图片

 初始化、判断队空:

cpp链队_第2张图片

void initQueue(LinkQueue& Q) {
	Q.front = (LinkNode*)malloc(sizeof(LinkNode));
	Q.rear = Q.front;
	Q.front->next = NULL;
}
bool isEmpty(LinkQueue Q) {
	if (Q.front == Q.rear)
		return true;
	else
		return false;
}

 入队、出队操作:

入队操作:

cpp链队_第3张图片

void enQueue(LinkQueue& Q, int x) {
	LinkNode* s = (LinkNode*)malloc(sizeof(LinkNode));
	s->data = x;
	s->next = NULL;
	Q.rear->next = s;
	Q.rear = s;
}

出队操作:

cpp链队_第4张图片cpp链队_第5张图片

bool deQueue(LinkQueue& Q, int& x) {
	if (Q.front == Q.rear)
		return false;
	LinkNode* p = Q.front->next;
	x = p->data;
	//若只有一个元素???????
	Q.front->next = p->next;
	if (Q.rear == p)
		Q.rear = Q.front;
	free(p);
	return true;
}

 

 

 

 

你可能感兴趣的:(cpp数据结构,数据结构)