#include<stdbool.h>#include<stdio.h>#include<stdlib.h>#include<string.h>typedefstruct{// TODO: fill-in real data} data_t;typedefstruct list_node {
data_t data;struct list_node *next;} list_node_t;
list_node_t *glob_list =NULL;
bool data_compare(data_t d1, data_t d2){// TODO: compare d1 with d2, return true if d1 < d2, false otherwise// TODO: if not care about ordering, simply return truereturn true;}voidlist_init(){}voidlist_insert(){
data_t data;// TODO: insert codes that produce data here!
list_node_t *new_node =(list_node_t*)malloc(sizeof(list_node_t));
new_node->data = data;if(glob_list ==NULL){
glob_list = new_node;
glob_list->next =NULL;}elseif(data_compare(data, glob_list->data)){
new_node->next = glob_list;
glob_list = new_node;}else{
list_node_t *cur,*prev;
cur = glob_list->next;
prev = glob_list;while(cur !=NULL){if(data_compare(prev->data, data)&&data_compare(data, cur->data)){break;}
cur = cur->next;
prev = prev->next;}
prev->next = new_node;
new_node->next = cur;}}voidlist_find(){// TODO input some data for finding
list_node_t *cur = glob_list;while(cur !=NULL){// TODO replace `true` with a real conditionif(true){// TODO dump value inside cur->datareturn;}
cur = cur->next;}// TODO replace this if necessaryprintf("Not found\n");}voidlist_delete(){if(glob_list ==NULL){// TODO replace this if necessaryprintf("The list is empty\n");}else{// TODO input some data for findingif(glob_list->next ==NULL){// TODO replace `true` with a real conditionif(true){// TODO destroy glob_list->data if necessaryfree(glob_list);
glob_list =NULL;}}else{
list_node_t *cur,*prev;
prev = glob_list;
cur = glob_list->next;while(cur !=NULL){// TODO replace `true` with a real conditionif(true){
prev->next = cur->next;// TODO destroy cur->data if necessaryfree(cur);return;}
cur = cur->next;
prev = prev->next;}// TODO replace this if necessaryprintf("Not found.\n");}}}voidlist_destroy(){
list_node_t *cur = glob_list;while(cur !=NULL){
list_node_t *t = cur->next;// TODO destroy cur->data if necessaryfree(cur);
cur = t;}
glob_list =NULL;}intmain(){// TODO add your transactions herereturn0;}