list.h
#ifndef LIST_H
#define LIST_H
#include <stdbool.h>
typedef int (*Comper)(const void*,const void*);
typedef struct Node
{
void* ptr;
struct Node* prev;
struct Node* next;
}Node;
typedef struct List
{
Node* head;
size_t size;
}List;
List* create_list(void);
void add_tail_list(List* list,void* ptr);
void show_list(List* list,void (*show)(void*));
bool insert_list(List* list,size_t index,void* ptr);
bool del_index_list(List* list,size_t index);
bool del_value_list(List* list,void* ptr,
Comper comper);
void* query_list(List* list,void* ptr,Comper comper);
void* visit_list(List* list,size_t index);
void sort_list(List* list,Comper comper);
void clean_list(List* list);
void destory_list(List* list);
#endif
list.c
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include "list.h"
static Node* create_node(