#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 1024
typedef struct SEQQUEUE{
void* data[MAX_SIZE];
int size;
}SeqQueue;
SeqQueue* Init_SeqQueue(){
SeqQueue* queue = (SeqQueue*)malloc(sizeof(SeqQueue));
int i;
for (i =0;i<MAX_SIZE;i++){
queue->data[i] = NULL;
}
queue->size = 0;
return queue;
}
void Push_SeqQueue(SeqQueue* queue, void* data){
if (queue == NULL){
return;
}
if (data == NULL){
return;
}
if (queue->size == MAX_SIZE){
return;
}
queue->data[queue->size] = data;
queue->size++;
}
void* Front_SeqQueue(SeqQueue* queue){
if (queue == NULL){
return NULL;
}
if (queue->size == 0){
return NULL;
}
return queue->data[0];
}
void Pop_SeqQueue(SeqQueue* queue){
if (queue == NULL){
return;
}
if (queue->size == 0){
return;
}
int j;
for (j = 0; j< queue->size - 1; j++){
queue->data[j] = queue->data[j+1];
}
queue->size--;
}
void* Back_SeqQueue(SeqQueue* queue){
if (queue == NULL){
return NULL;
}
if (queue->size == 0){
return NULL;
}
return queue->data[queue->size-1];
}
int Size_SeqQueue(SeqQueue* queue){
if (queue == NULL){
return -1;
}
return queue->size;
}
void Clear_SeqQueue(SeqQueue* queue){
if (queue == NULL){
return;
}
queue->size = 0;
}
void FreeSpace_SeqQueue(SeqQueue* queue){
if(queue == NULL ){
return;
}
free(queue);
}
typedef struct PERSON{
char name[64];
int age;
}Person;
int main(void){
SeqQueue* queue = Init_SeqQueue();
Person p1 = {"aaa",30};
Person p2 = {"bbb",20};
Person p3 = {"ccc",40};
Person p4 = {"ddd",60};
Person p5 = {"eee",80};
Push_SeqQueue(queue,&p1);
Push_SeqQueue(queue,&p2);
Push_SeqQueue(queue,&p3);
Push_SeqQueue(queue,&p4);
Push_SeqQueue(queue,&p5);
while (Size_SeqQueue(queue) > 0){
Person* p = (Person*)Front_SeqQueue(queue);
printf("Name:%s Age:%d\n", p->name,p->age);
Pop_SeqQueue(queue);
}
FreeSpace_SeqQueue(queue);
system("pause");
return 0;
}