#includetypedef struct term /*项的表示,多项式的项作为LinkList的数据元素 */
{ float coef; /*系数*/
int expn; /*指数*/
struct term *next;
}term;
term *CreatPolyn(term *P,int m) /* 输入m项的系数和指数,建立一个表示一
元多项式的有序链表P,并返回头结点 */
{ term *h,*q; float x; int i,y;
P=(term*)malloc(sizeof(term));
h=P;
if (m<=0) return NULL;
printf("\nPut %d not zero items : ",m);
printf("\n");
for (i=1; i<=m; ++i) /* 依次输入m个非零项*/
{ scanf("%f,%d",&x,&y);
P->coef=x;P->expn=y;
if(P->coef)
q = P;
P = (term*)malloc(sizeof(term)); /* P后移并分配新空间 ,q记录P的前结点 */
q->next=P;
}
q->next = NULL;
free(P);
return h;
}
term *selsort(term *h) /*保证链表h指数有序,且无同指数结点,返回头结点*/
{ term *g, *p, *q;
float f;
int i, fini = 1;
if(!h) return NULL;
for(g = h;g->next&&fini;g = g->next) /*将表中指数排序,思路同冒泡排序*/
{
fini = 0;
for(p = h,q = h->next;q;p = p->next,q = q->next) /* p始终指在q的前面 */
if (p->expn > q->expn) /* 如果p大于q的指数就交换*/
{
f=p->coef;i=p->exp