我與數(shù)據(jù)結(jié)構(gòu)有個約會,帶你領(lǐng)略不一樣的數(shù)據(jù)結(jié)構(gòu)!
#include <stdio.h>
#include <stdlib.h>
#define Maxsize 100
typedef int QElemType;
typedef struct{
QElemType data[Maxsize];
int front; //頭指針
int rear; //尾指針
}SqQueue;
//初始化
void InitQueue(SqQueue &L){
L.front =L.rear = 0;
}
//隊列長度
int QueueLength(SqQueue L){
return (L.rear - L.front + Maxsize) % Maxsize;
}
//入隊
bool EnQueue (SqQueue &L,int x){
if((L.rear+1)%Maxsize == L.front){ //判斷隊滿條件
return false;
}
L.data[L.rear] = x;
//指針向后移動
L.rear = (L.rear+1)%Maxsize;
return true;
}
//出隊列
bool DeQueue(SqQueue &L,int &e){
if(L.front == L.rear){
return false;
}
e = L.data[L.front];
//移動
L.front = (L.front+1)%Maxsize;
return true;
}
//輸出
void Print(SqQueue L){
int len = QueueLength(L);
for(int k = L.front;k<=len;k++){
printf("%d",L.data[k]);
}
}
int main(){
int x,e=0;
SqQueue l;
InitQueue(l);
for(int i=0;i<5;i++){
scanf("%d",&x);
EnQueue(l,x);
}
printf("\n");
DeQueue(l,e);
Print(l);
system("pause");
}