数据结构算法实现

数据结构算法实现,第1张

顺序队列会存在假溢出现象,所以队列的顺序存储结构一般采用循环队列来表示。



1.循环队列的表示:

#define MaxSize 100
typedef struct{
	ElemType data[MaxSize]; //存放队列元素
	int front,rear; //队头指针和队尾指针
}SqQueue;
//初始时:Q.front = Q.rear = 0;
//队头指针前进1: Q.front = (Q.front+1)%MaxSize;
//队尾指针前进1:同上
//队列长度:(Q.rear-Q.front+MaxSize) % MaxSize; //想想为什么
//队满:(Q.rear+1) % Maxsize == Q.front;
//队空:Q.front == Q.rear;

2.循环队列的初始化:

void InitQueue(SqQueue &Q){
	Q.rear = Q.front = 0;
}

3.判断循环队列是否为空:

int QueueEmpty(SqQueue Q){
	if(Q.front == Q.rear) return true;
	return false;
}

4.入队:

int EnQueue(SqQueue &Q,ElemType e){
	if((Q.rear+1)%MaxSize == Q.front) return ERROR;
	Q.data[Q.rear] = e;
	Q.rear = (Q.rear+1)%MaxSize; //队尾指针前进1
	return OK;
}	

5.出队:

int DeQueue(SqQueue &Q, ElemType &e){
	if(Q.front == Q.rear) return ERROR;
	e = Q.data[Q.front]; //队头的值传给e
	Q.front = (Q.front+1)%MaxSize; //队头指针前进1
	return true;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/585381.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存