#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define OK 1
#define ERROR 0
#include<string.h>
typedef struct Node
{
int coef;//系数
int exp;//指数
struct Node* next;
}Node;
Node* create(int x)
{
Node *L,*s,*r;
int m,n,i;
L=(Node*)malloc(sizeof(Node));
L->next=NULL;
r=L;
for(i=1;i<=x;i++)
{ scanf("%d%d",&m,&n);
s=(Node*)malloc(sizeof(Node));
s->coef=m;
s->exp=n;
r->next=s;
r=s;
}
r->next=L; //注意循环链表尾巴接的头!!
return L;
}
Node* qiudao(Node* &L)
{
Node *p,*q;
q=L;
p=L->next;
while(p!=L)
{ if(p->exp==0)
{ q->next=p->next;
delete p;
p=q->next;
}
else{
p->coef=(p->coef)*(p->exp);
p->exp--;
q=p;
p=p->next;
}
}
return L;
}
void show(Node* L)
{ Node *p;
p=L->next;
while(p!=L)//注意!!终止条件!!
{
printf("%d~%d ",p->coef,p->exp);
p=p->next;
}
printf("\n");
}
int main()
{
int a;
Node *L1;
printf("链表的长度:");
scanf("%d",&a);
L1=create(a);
printf("您建的表为:\n");
show(L1);
printf("求导后\n");
L1=qiudao(L1);
show(L1);
}
单循环链表的求导
猜你喜欢
转载自blog.csdn.net/weixin_43913556/article/details/88537349
今日推荐
周排行