当前位置:文档之家› 国开(电大)数据结构课程实验报告2

国开(电大)数据结构课程实验报告2

switch(*cmp(a,b)){ //a,b分别为pa,pb所指结点的指数
case -1:pc=pa;pa=pa->next; break; //a<b
case 0: {sum=pa->coef+pb->coef;
if (sum<>0){pa->coef=sum;pc=pa;}
else{pc->next=pa->next;free(pa);}
pa=pc->next;u=pb;pb=pb->next;free(u);
break;} //a=b
case 1: {u=pb->next;pb->next=pa;pc->next=pb;
pc=pb;pb=u; break;} //a>b
} //switch}//while
if(pb) {pc->next=pb; } free(lb); }
实验结果:




实验的心得体会:
一元多项式的相加运用的是有序链表来实现其功能的,在编程过程中,抽象数据类型Polynomial的实现是重要的一部分,用去很长时间。编程最重要的是运行程序和调试程序的过程。编写程序时要特别注意数据类型的定义。






指导教师 日期
typedefOrderedLinkList polynomial;
//用带表头结点的有序链表表示多项式
结点的数据元素类型定义为:
typedef struct polynomialnode { //项的表示
float coef; //系数
int expn; //指数
struct polynomialnode *next;
} polynomialnode, *polynomial ;
void addpolyn (polynomial &la, polynomial &lb){
pa=la->next;pb=lb->next;pc=la;//pa,pb分别指向la,lb的第一个结点
while (pa&&pb) {a=pa->expn;b=pb->expn;
数据结构课程实验报告
学生姓名
李曼竹
学 号
1915001215085
班 级
指导老师
实验名称
实验2线性表
实验成绩
实验报告




实验目的及要求:
掌握线性表的基本操作如线性表的初始化、查找、插入、删除等,以及线性表的存储结构的运用,并利用线性表实现一元多项式的相加。



容实验设计思路、步骤和源自法等:通过对线性表的基本操作,对线性表进行初始化,用带表头结点的有序链表表示多项式,通过一系列线性表的基本操作实现一元多项式相加。设p,q分别指向A,B中某一结点,p,q初值是第一结点,比较p->exp与q->exp,p->exp < q->exp: p结点是结果多项式中的一项,p后移,q不动;p->exp > q->exp: q结点是结果多项式中的一项,将q插在p之前,q后移,p不动;p->exp = q->exp:系数相加,直到p或q为NULL。
相关主题