C語言資料結構-順序佇列-陣列實現
阿新 • • 發佈:2019-02-05
#include <stdio.h> #include <stdlib.h> typedef struct SQueue{ int * data; int front,rear; int maxSize; } SQueue; void initQueue(SQueue *queue, int size){ queue->front=0; queue->rear=0; queue->maxSize=size; queue->data=(int*)malloc(size*sizeof(int)); } void insertQueue(SQueue *queue, int data){ int csize=queue->rear; if((csize+1)>queue->maxSize){ printf("queue is full, can't insert element again!"); return; } queue->data[queue->rear]=data; queue->rear=queue->rear+1; } int outQueue(SQueue *queue){ int fIndex=queue->front; if((fIndex+1)>=queue->maxSize){ printf("queue is empty, can't out element again!"); return -1; } int data= queue->data[queue->front]; queue->front=queue->front+1; return data; } int isEmpty(SQueue queue){ if(queue.rear==queue.front){ return 1; } return 0; } int main() { SQueue queue; initQueue(&queue,3); insertQueue(&queue,1); insertQueue(&queue,2); insertQueue(&queue,3); insertQueue(&queue,4); int sd=isEmpty(queue); printf("queue is full=%d!\n",sd); int fdata=outQueue(&queue); printf("data=%d!\n",fdata); int wdata=outQueue(&queue); printf("data=%d!\n",wdata); return 0; }