//FIFO singly queue QueueType *Init_Queue() { QueueType *queue; queue = (QueueType *)malloc(sizeof(QueueType)); DATA data; if(NULL == queue){ printf("Fail to allocate memory for a new Node!\n"); return NULL; } queue->front = 0; queue->rear = 0; //初始化时先把不能用到的这个归零,防止意外读到乱码 //只有这个没有被自动初始化为0 queue->data[QUEUEMAX-1].id[0] = 0; queue->data[QUEUEMAX-1].name[0] = 0; queue->data[QUEUEMAX-1].age = 0; printf("\nInput data (id name age). Quit when id=0. \n"); while(1){ scanf("%s", data.id); if(data.id[0]=='0' && data.id[1]=='\0') break; scanf("%s%d", data.name, &data.age); queue = Push_Queue(queue, data); } if(!Is_Empty_Queue(queue)) printf("\nQueue generated!\n"); else printf("\nQueue empty!\n"); return queue; }
int main() { SeQueue *q; q = Init_Queue(); for (int i = 0; i < 6; i++) Push_Queue(q, i); Print_Queue(q); Destroy_Queue(q); }