题目:
结构体及链表创建:
typedef struct node{ int coef; int exp; struct node* next; }n,*pn; pn create(int length){ int *coef_array = new int[length] ; int *exp_array = new int[length] ; int coef,exp; for(int i=0;i<length;i++) { cout<<"input("<<i+1<<")coef:"; cin>>coef; coef_array[i]=coef; cout<<"input("<<i+1<<")exp:"; cin>>exp; exp_array[i]=exp; } for(int i=0;i<length;i++) { cout<<coef_array[i]<<"x^"<<exp_array[i]<<'+'; } pn head,node,p; head=(pn)malloc(sizeof(n)); //分配空间 p=(pn)malloc(sizeof(n)); //分配空间 head->next=p; p->coef=coef_array[length-1]; p->exp=exp_array[length-1]; for(int i=length-2;i>=0;--i) { node=(pn)malloc(sizeof(n)); //分配空间 node->coef=coef_array[i]; node->exp=exp_array[i]; node->next=NULL; p->next=node; p=p->next; } return head; }
函数代码如下:
bool judge(pn heada,pn headb){ pn pa=heada->next; pn pb=headb->next; int counta=0,countb=0; while(pa!=NULL){ counta++; pa=pa->next; } while(pb!=NULL){ countb++; pb=pb->next; } if(counta!=countb) return false; pa=heada->next; pb=headb->next; bool judge=false; while(pa!=NULL){ cout<<pa->coef<<"x^"<<pa->exp<<":\n"; while (pb!=NULL) { cout<<pb->coef<<"x^"<<pb->exp<<' '; if(pa->coef==pb->coef && pa->exp==pb->exp){ judge=true; cout<<"matched!"<<endl; pb=headb->next; break; } pb=pb->next; } if(!judge) return false; judge=false; pa=pa->next; } return true; }