当前位置:首页 > 算法与数据结构实验一元多项式求和
《算法与数据结构》实验报告
姓名:章帆
班级:计科01
学号:1105090123
实验题目:链表的应用
实验内容:一元多项式求和
把任意给定的两个一元多项式P(x) ,Q(x) 输入计算机,计算它们的和并输出计算结果。
设计分析:
一元多项式可以用单链表表示,结点结构图示如下:
coef exp next
一元多项式链表的结点结构
一元多项式算法伪代码如下:
1. 工作指针p、q初始化;
2. while(p存在且q存在)执行下列三种情形之一
2.1 如果p->exp
2.3 如果p->exp=q->exp,则
2.3.1 p->coef =p->coef+q->coef; 2.3.2 如果p->coef ==0,则执行下列操作,否则,指针p后移; 2.3.2.1 删除结点p; 2.3.2.2 使指针p指向它原指结点的下一个结点; 2.3.3 删除结点q; 2.3.4 使指针q指向它原指结点的下一个结点; 3. 如果q不为空,将结点q链接在第一个单链表的后面; 源程序代码:
#include \ #include
int x,z;
struct LNode *next;
}LinkList;
void OutLinkList(LinkList *L); void PutLinkList(LinkList *&L,int n);
LinkList *AddLinkList(LinkList *a,LinkList *b);
void OutXLinkList(LinkList *L); void OutZLinkList(LinkList *L); void main() { }
void PutLinkList(LinkList *&L,int n) {
LinkList *s,*r;
L=(LinkList *)malloc(sizeof(LinkList)); r=L;
for(int i=0;i r->next=NULL; s=(LinkList *)malloc(sizeof(LinkList)); printf(\请?输o?入¨?第ì¨2%d项?的ì?系|ì数oy:êo\,i+1); scanf(\,&s->x); printf(\请?输o?入¨?第ì¨2%d项?的ì?指?数oy:êo\,i+1); scanf(\,&s->z); r->next=s; r=s; int n,m; LinkList *a,*b,*c; printf(\本à?程¨?序¨?可¨|以??完a¨o成¨|两¢?个?一??元a多¨¤项?式o?的printf(\请?输o?入¨?一??元a多¨¤项?式o?a的ì?项?数oym:êo\); scanf(\,&m); printf(\请?按???照?从?¨?低ì¨a次??到ì?高?次??的ì?顺3序¨?依?¨¤此??输o?入¨?PutLinkList(a,m); printf(\); OutLinkList(a); printf(\请?输o?入¨?一??元a多¨¤项?式o?b的ì?项?数oyn:êo\); scanf(\,&n); printf(\请?按???照?从?¨?低ì¨a次??到ì?高?次??的ì?顺3序¨?依?¨¤此??输o?入¨?PutLinkList(b,n); printf(\); OutLinkList(b); c=AddLinkList(a,b); printf(\两¢?个?多¨¤项?式o?的ì?和¨a为a:êo\\na+b=\); OutLinkList(c); ì?加¨?法¤?§运?算?。?ê\\n\); 一??元a多¨¤项?式o?a的ì?系|ì数oy和¨a指?数oy:êo\\n\); 一??元a多¨¤项?式o?b的ì?系|ì数oy和¨a指?数oy:êo\\n\); } void OutLinkList(LinkList *L) { } void OutXLinkList(LinkList *L) { } void OutZLinkList(LinkList *L) { if(L->z==0) ; int xi=L->x>0? L->x:-L->x; if(L->x==1||L->x==-1) ; printf(\,xi); else char FuHao; LinkList *p=L->next; FuHao=p->x>0? '+':'-'; if(FuHao=='-') { } OutXLinkList(p); OutZLinkList(p); p=p->next; while(p!=NULL) { } printf(\); FuHao=p->x>0? '+':'-'; printf(\,FuHao); OutXLinkList(p); OutZLinkList(p); p=p->next; printf(\,FuHao); if(p->x==-1) printf(\);
共分享92篇相关文档