You are on page 1of 4

**********************************************************************

****************/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

#define MAX 100

typedef struct list


{
char *var;
struct list *next;
}list_t;

int isempty(list_t *head);


list_t *create(FILE *fptr);
list_t *insert(list_t **head ,char *sptr);
void display(list_t *start);

int isempty(list_t *head)


{
/* Check if lists exist or not and return status */
if (NULL == head)
{
return 1;
}

return 0;
}

list_t *create(FILE *fptr)


{
char *str = NULL;
list_t *node ;
char *token;
list_t *head = NULL;

str = (char *)malloc(sizeof(char)*MAX);


fgets(str, MAX, (FILE*)fptr);
token = strtok(str ," ,.");
while(token != NULL)
{
node = insert(&head , token);
token = strtok(NULL ," ,.");

return head;
}

list_t *search(FILE *fptr2, list_t **head)


{
char *str = NULL;
list_t *ptr ;
char *token;

ptr = *head;

str = (char *)malloc(sizeof(char)*MAX);


fgets(str, MAX, (FILE*)fptr2);
token = strtok(str ," ,.");
while(token != NULL)
{
while(ptr->next != NULL)
if(strcmp(token, ptr->var) == 0)
{
delete(&ptr);
ptr = ptr->next;
}
token = strtok(NULL ," ,.");

return head;

}
void delete(list_t **head)
{
list_t *temp = *head;
lis_t *prev;

if (temp->next == NULL )
{
*head = temp->next;
free(temp);
return 0;

prev->next = temp->next;

free(temp);
return 0;
}

list_t *insert(list_t **head ,char *sptr)


{
list_t *newnode = NULL;
list_t *ptr ;

ptr = *head;

newnode = (list_t *)malloc(sizeof(list_t));


newnode->var = (char *)malloc(sizeof(char)*(strlen(sptr)+1));

strcpy(newnode->var , sptr);
newnode->next = NULL;

if( *head == NULL)


{
*head = newnode;
}

else
{
while(ptr->next!= NULL)
{
ptr = ptr->next;
}

ptr->next = newnode;

return ptr;

void display(list_t *start)


{
if(isempty(start))
{
printf("List is empty!! Nothing to display..\n");
}
else
{
while(NULL != start)
{
printf("%s \n", start->var);
start = start->next;
}
}
}

int main( int argc, char *argv[] )


{
FILE *fp1;
FILE *fp2;
list_t *ptr;
list_t *ptr2;

fp1 = fopen( argv[1], "r");


if(fp1 == NULL)
{
printf("Cannot open file");
exit(0);
}

ptr = create((FILE *)fp1);


printf("The linked list is:\n");
display(ptr);

fp2 = fopen( argv[2], "r");


if(fp2 == NULL)
{
printf("Cannot open file");
exit(0);
}

ptr2 = create((FILE *)fp2, ptr2);


printf("The linked list is:\n");
display(ptr2);

fclose(fp1);
fclose(fp2);
return 0;
}

You might also like