Exemplo n.º 1
0
//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;
}
Exemplo n.º 2
0
int main()
{
  SeQueue *q;
  q = Init_Queue();
  for (int i = 0; i < 6; i++)
    Push_Queue(q, i);
  Print_Queue(q);
  Destroy_Queue(q);
}