数据结构(算法)-线性表(队列)



#include <iostream>
using namespace std;

/**

队列  先进先出

1, 初始化队列initqueue
2,入队push
3,出队del
4,显示所有队列元素display
*/

#define MaxSize 50
typedef char ElemType;

typedef struct {
	ElemType queue[MaxSize];
	int front,rear;
} QueueType;


void initQueue(QueueType *Q){
	Q->front=Q->rear=-1;
}

void push(QueueType *Q ,ElemType x){
	if(Q ->rear == MaxSize){
		cout<<"队列满了"<<endl;
	}else{
		Q->rear++;
		Q->queue[Q->rear]=x;
	}
}

void del(QueueType *Q){
	if(Q -> front == Q-> rear){
		cout<<"队列为空"<<endl;
	}else{
		Q->front++;
	}

}

void display(QueueType *Q){

	cout<<"队列为空"<<endl;
	int i;
	for(i=Q->front+1 ; i<=Q->rear; i++){
		printf("%C",Q->queue[i]);
	}
}

void main(){
	QueueType *queue;
	
	initQueue(queue);
	
	cout<<"依次插入a,b,c,d"<<endl;
	push(queue,'a');
	push(queue,'b');
	push(queue,'c');
	push(queue,'d');

	display(queue);
	
	cout<<"出队列"<<endl;
	del(queue);
	display(queue);

}

 


#include <iostream>
using namespace std;

/**

队列
	循环队列  解决溢出问题

1, 初始化队列initqueue
2,入队push
3,出队del
4,显示所有队列元素display
*/

#define MaxSize 50
typedef char ElemType;

typedef struct {
	ElemType queue[MaxSize];
	int front,rear;
} QueueType;


void initQueue(QueueType *Q){
	Q->front=Q->rear=-1;
}

void push(QueueType *Q ,ElemType x){
	if(Q ->front == -1 && (Q->rear+1) == MaxSize){
		cout<<"队列满了"<<endl;
	}else if(Q->rear+1 % MaxSize  == Q ->front){
		cout<<"队列满了"<<endl;
	}else{
		Q->rear=(Q->rear+1) %MaxSize;
		Q->queue[Q->rear]=x;
	}
}

void del(QueueType *Q){
	if(Q -> front == Q-> rear){
		cout<<"队列为空"<<endl;
	}else{
		Q->front = (Q->front+1) %MaxSize;
	}

}

void display(QueueType *Q){

	cout<<"队列为:"<<endl;
	int i=Q->front+1;
	for(i=Q->front+1 ; i<=Q->rear; i++){
		printf("%C",Q->queue[i]);
	}
}

void main(){
	QueueType *queue;
	
	initQueue(queue);
	
	cout<<"依次插入a,b,c,d"<<endl;
	push(queue,'a');
	push(queue,'b');
	push(queue,'c');
	push(queue,'d');

	display(queue);
	
	cout<<"出队列"<<endl;
	del(queue);
	display(queue);

}

 

转载于:https://my.oschina.net/saulc/blog/2249288

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值