data structures using ptr start ptr start while(ptr !null &ptr !nullif(ptr -coeff =ptr -coeffsum_num ptr -num ptr -numstart add_node(start sum_numptr -coeff)ptr ptr -nextptr ptr -nextelse if(ptr -coeff ptr -coeffstart add_node(start ptr -numptr -coeff)ptr ptr -nextelse if(ptr -coeff coeffstart add_node(start ptr -numptr -coeff)ptr ptr -nextif(ptr =nullwhile(ptr !nullstart add_node(start ptr -numptr -coeff)ptr ptr -nextif(ptr =nullwhile(ptr !nullstart add_node(start ptr -numptr -coeff)ptr ptr -nextreturn start struct node *sub_poly(struct node *start struct node *start struct node *start struct node *ptr *ptr int sub_numcptr start ptr start do if(ptr -coeff =ptr -coeffsub_num ptr -num ptr -numstart add_node(start sub_numptr -coeff)ptr ptr -nextptr ptr -nextelse if(ptr -coeff ptr -coeffstart add_node(start ptr -numptr -coeff)ptr ptr -nextelse if(ptr -coeff coeff