i have already posted here about my linked list facebook program
and i have anoter problem with the function :
void cancelFriends(int id1, int id2, PersonList* allPersons)
here is the structs again :
typedef struct Person {
int id;
char* name;
struct PersonList* friends;
} Person;
typedef struct PersonList {
Person* person;
struct PersonList* next;
} PersonList;
this is what i have allready wrote in the function :
void cancelFriends(int id1, int id2, PersonList* allPersons)
{
Person* friend1,*friend2;
PersonList* temp1,*temp2;
friend1 = getPersonById(id1,allPersons);
if(friend1==NULL)
puts(USER_NOT_EXIST );
friend2 = getPersonById(id2,allPersons);
if(friend2==NULL)
puts(USER_NOT_EXIST );
temp1=friend1->friends;
temp2=friend2->friends;
if(friend1->friends->person->id == friend2->id)
{
friend1->friends=friend1->friends->next;
free(temp1);
}
while(friend1->friends->next && friend1->friends->next->person->id != friend2->id)
friend1->friends=friend1->friends->next;
if(!friend1->friends)
puts(NOT_FRIENDS);
else
{
if(friend2->friends->person->id == friend1->id)
{
friend2->friends=friend2->friends->next;
free(temp2);
}
while(friend2->friends->next && friend2->friends->next->person->id != friend1->id)
friend2->friends=friend2->friends->next;
if(friend2->friends)
friend2->friends->next=friend2->friends->next->next;
}
}
Person* getPersonById(int id, PersonList* list){
while(list && list->person->id!=id)
list=list->next;
if(list->person->id == id)
return list->person;
else
return NULL;
please help me to make my cancling function works !!!
thank you!!