SqQueue.h #ifndef SQQUEUE_H_H #define OK 0 #define ERROR -1 #define MAX_SIZE 100 typedef int type; typedef struct SNode { type date[MAX_SIZE]; int front; //队头指针 int rear; //对尾指针 int queue_length; int queue_size; }SqQueue; int init_queue(SqQueue*); int clear_queue(SqQueue*); int queue_empty(SqQueue*); int queue_length(SqQueue*); int get_head(SqQueue*, type*); int insert_queue(SqQueue*, type); int delete_queue(SqQueue*, type*); int create_queue(SqQueue*); int print_queue(SqQueue*); #endif SqQueue.cpp #include<stdio.h> #include<stdlib.h> #include"SqQueue.h" int init_queue(SqQueue *queue) { queue->front = queue->rear = 0; queue->queue_length = 0; queue->queue_size = MAX_SIZE; return OK; } int clear_queue(SqQueue *queue) { queue->front = queue->rear = 0; queue->queue_length = 0; return OK; } int queue_empty(SqQueue *queue) { if(queue->queue_length == 0) return true; return false; } int queue_length(SqQueue *queue) { return queue->queue_length; } int get_head(SqQueue *queue, type *e) { *e = queue->date[queue->front]; return OK; } int insert_queue(SqQueue *queue, type e) { if(queue->rear == queue->queue_size) return ERROR; queue->date[queue->rear++] = e; queue->queue_length++; return OK; } int delete_queue(SqQueue *queue, type *e) { if(queue->front == queue->queue_size) return ERROR; *e = queue->date[queue->front]; queue->queue_length--; int i = 0; while(i < queue->queue_length) { queue->date[i] = queue->date[i + 1]; i++; } return OK; } int create_queue(SqQueue *queue) { type num; printf("input num: "); scanf("%d",&num); while(num) { insert_queue(queue,num); scanf("%d",&num); } return OK; } int print_queue(SqQueue *queue) { int index = queue->front; while(index < queue->queue_length) { printf("%d ",queue->date[index++]); } printf("/n"); return OK; }