typedef struct child {int count; char word[100]; inner_list*next;} child;
typedef struct parent
{ char data [100];
child * head;
int count;
parent * next; } parent;
void append(child **q,char num[100],int size)
{ child *temp,*r,*temp2,*temp3;
parent *out=NULL;
temp = *q;
temp2 = *q;
temp3 = *q;
char *str;
if(*q==NULL)
{ temp = (child *)malloc(sizeof(child));
strcpy(temp->word,num);
temp->count =size;
temp->next=NULL;
*q=temp;
}
else
{ temp = *q;
while(temp->next !=NULL)
{ temp=temp->next;
}
r = (child *)malloc(sizeof(child));
strcpy(r->word,num);
r->count = size;
r->next=NULL;
temp->next=r;
}
}
This is my append function which I use for adding an element to my child list. But my problem is it only should append unique values which are followed by a string. Which means :
Inputs : aaa bbb aaa ccc aaa bbb ccc aaa
Append should act :
For aaa string there should be a list like bbb->ccc(Not bbb->ccc->bbb since bbb is already there if bbb is coming more than one time it should be increase count only.)
For bbb string there should be list like aaa->ccc only
For ccc string there should be list like aaa only
I hope i could make myself clear. Is there any ideas? Please ask for further info.
What i’ve tried is checking the previous elements entered with the new element. I kinda failed it.
int search(child *p)
{
child *temp= (child *)malloc(sizeof(child));
int var =0;
char num[100];
temp = p;
strcpy(num,p->word);
while(temp->next!=NULL)
{
if(strcmp(temp->word,num)==0)
var =1;
temp=temp->next;
}
return var;
}
This is what i’ve tried so far. With this search function i would control if the element is here or not. But it failed.
If I understand correctly, given the inputs
You want the parent list to have 3 elements – a child list for
aaa, one forbbband one forccc.The list for
aaashould contain all strings that followedaaain the original input, which here is justbbbandccc. It should only contain them once each, with thecountvariable in the corresponding nodes incremented so thatbbb‘s count is 2 andccc‘s count is 1.Is this correct? If it is, read on.
I think this should get you where you want to go.