#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <unistd.h>
#include <string.h>
typedef struct node
{
char *deviceID;
char *meteID;
int value;
struct node *next;
}listnode,*linklist;
linklist init_list(void)
{
linklist mylist = malloc(sizeof(listnode));
if(mylist != NULL)
{
mylist->next = NULL;
}
return mylist;
}
bool is_empty(linklist list)
{
return list->next == NULL;
}
linklist new_node(char *deviceID,char *meteID,int value)
{
linklist new = malloc(sizeof(listnode));
if (new != NULL)
{
new->deviceID = deviceID;
new->meteID = meteID;
new->value = value;
new->next = NULL;
}
return new;
}
void insert_node(linklist list,linklist newNode)
{
if (list == NULL || newNode == NULL)
return;
newNode->next = list->next;
list->next = newNode;
}
bool remove_node(linklist list,linklist delete)
{
if (is_empty(list))
return false;
linklist p = list;
while(p!=NULL && p->next != delete)
{
p = p->next;
}
if (p == NULL)
return false;
p->next = delete->next;
delete->next = NULL;
return true;
}
void moe_node(linklist list,linklist p,linklist anchor)
{
if (list == NULL || p == NULL || anchor == NULL)
return;
renove_node(list,p);
insert_node(anchor,p);
}
void show(linklist list)
{
if (is_empty(list))
return ;
linklist p = list->next;
int i =0;
while(p != NULL)
{
printf("deviceID:%s\n",p->deviceID);
printf("meteID:%s\n",p->meteID);
printf("value:%d\n",p->value);
p = p->next;
i++;
}
}