#include <stdio.h>
#include <stdlib.h>
struct ClientList
{
struct ClientList *Next;
int data;
};
struct ClientList *head;
void insert(int data)
{
struct ClientList *temp=(struct ClientList *) malloc(sizeof(struct ClientList)) ;
temp->data = data;
temp->Next=head;
head=temp;
}
int del(struct ClientList *temp)
{
struct ClientList *cur=head;
if(temp==head)
{
head=temp->Next;
free(temp);
}
else {
while(cur)
{
if(cur->Next==temp)
{
cur->Next=temp->Next;
free(temp);
}
cur=cur->Next;
}
}
return 0;
}
struct ClientList *find(int data)
{
struct ClientList *cur=head;
while (cur)
{
if (cur->data == data)
return cur;
cur = cur->Next;
}
return NULL;
}
void printList(char *pre)
{
struct ClientList *cur=head;
printf("%s:\n",pre);
if (!cur)
printf("List is empty.\n");
while (cur)
{
printf("%d\n", cur->data);
cur = cur->Next;
}
printf("\n");
}
int main(int argc, char **argv)
{
insert(0);
insert(1);
insert(2);
insert(3);
printList("After Inserts");
del(find(2));
printList("After del(find(2))");
del(find(0));
printList("After del(find(0))");
del(find(1));
printList("After del(find(1))");
del(find(3));
printList("After del(find(3))");
insert(4);
printList("After insert(4)");
return 0;
}