/// @brief Main function to test the queue structure /// /// @return 0 if all went ok, 1 otherwise int main(void) { queue* s = NULL; int count = 100000; printf("\033[33m > Starting queue test\033[37m :\n\n"); // Creating queue printf("[ \033[32mCreating\033[37m queue ..\n"); s = queue_create(); if (!s) return 1; printf("Queue correctly created ] \n\n"); printf("Is the queue empty ? > %s\n", (queue_empty(s) ? "yes" : "no")); printf("Queue size : %i\n\n", queue_size(s)); // Pushing / Poping printf("[ \033[32mPushing\033[37m %i elements in the queue ..\n\n", count); for (int i = 0; i < count; i++) queue_push(s, i); printf("Is the queue empty ? > %s\n", (queue_empty(s) ? "yes" : "no")); printf("Queue size : %i\n\n", queue_size(s)); printf("[ \033[32mPoping\033[37m %i elements from the queue ..\n\n", count); for (int i = 0; i < count; i++) queue_pop(s); printf("Is the queue empty ? > %s\n", (queue_empty(s) ? "yes" : "no")); printf("Queue size : %i\n\n", queue_size(s)); printf("[ \033[32mPushing\033[37m 100000 elements in the queue ..\n\n"); for (int i = 0; i < count; i++) queue_push(s, i); printf("Is the queue empty ? > %s\n", (queue_empty(s) ? "yes" : "no")); printf("Queue size : %i\n\n", queue_size(s)); printf("[ \033[32mClearing\033[37m the queue ..\n\n"); queue_clear(s, NULL); printf("Is the queue empty ? > %s\n", (queue_empty(s) ? "yes" : "no")); printf("Queue size : %i\n\n", queue_size(s)); printf("[ \033[32mPushing\033[37m 1, 2, 3, 4, 5 in the queue ..\n\n"); queue_push(s, 1); queue_push(s, 2); queue_push(s, 3); queue_push(s, 4); queue_push(s, 5); printf("\033[32mFront\033[37m element is : %i\n", queue_front(s)); printf("\033[32mBack\033[37m element is : %i\n\n", queue_back(s)); printf("\033[32mVisiting\033[37m the queue ..\n"); queue_visit(s, visitor, NULL); printf("\n[ \033[32mDeleting\033[37m the queue..\n\n"); queue_delete(s, NULL); printf("Is the queue empty ? > %s\n", (queue_empty(s) ? "yes" : "no")); printf("Queue size : %i\n\n", queue_size(s)); return 0; }
int main(int argc, char **args) { //用于存放int型数据的队列 s_queue queue_int; //释放内存函数与访问函数均是int型 init_queue(&queue_int, sizeof(int), free_int, print_int); //插入数据 for (int i = 0; i < 5; ++i) { int *e = (int *) malloc(sizeof(int)); *e = i; queue_insert(&queue_int, e); } //显示queue中所有数据内容 queue_visit(&queue_int); //销毁queue destroy_queue(&queue_int); printf("\n"); //用于存放student型数据的queue s_queue queue_stu; //释放内存函数与访问函数均是student型 init_queue(&queue_stu, sizeof(student), free_stu, print_stu); //在队列尾插入数据 student *stu1 = (student *) malloc(sizeof(student)); stu1->no = 15100101; stu1->age = 23; stu1->name = (char *) malloc(20); memcpy(stu1->name, "lidq", 20); queue_insert(&queue_stu, stu1); //在队列尾插入数据 student *stu2 = (student *) malloc(sizeof(student)); stu2->no = 15100102; stu2->age = 21; stu2->name = (char *) malloc(20); memcpy(stu2->name, "zhaoy", 20); queue_insert(&queue_stu, stu2); //在队列尾插入数据 student *stu3 = (student *) malloc(sizeof(student)); stu3->no = 15100103; stu3->age = 22; stu3->name = (char *) malloc(20); memcpy(stu3->name, "liuzh", 20); queue_insert(&queue_stu, stu3); //显示队列中所有内容 queue_visit(&queue_stu); printf("\n"); //在队列头删除元素 queue_delete(&queue_stu); //显示队列中所有内容 queue_visit(&queue_stu); //销毁队列 destroy_queue(&queue_stu); return 0; }