1、精选优质文档-倾情为你奉上数据结构课程实验报告学生姓名宋钧学 号24班 级指导老师实验名称实验成绩实验报告实验概述实验目的及要求: 掌握线性表的基本操作如线性表的初始化、查找、插入、删除等,以及线性表的存储结构的运用,并利用线性表实现一元多项式的相加。实验内容实验设计思路、步骤和方法等:通过对线性表的基本操作,对线性表进行初始化,用带表头结点的有序链表表示多项式,通过一系列线性表的基本操作实现一元多项式相加。设p,q分别指向A,B中某一结点,p,q初值是第一结点,比较p-exp与q-exp,p-exp exp: p结点是结果多项式中的一项,p后移,q不动;p-exp q-exp: q结点是结果
2、多项式中的一项,将q插在p之前,q后移,p不动;p-exp = q-exp:系数相加,直到p或q为NULL。typedef OrderedLinkList polynomial; / 用带表头结点的有序链表表示多项式结点的数据元素类型定义为:typedef struct polynomialnode / 项的表示 float coef; / 系数 int expn; / 指数 struct polynomialnode *next; polynomialnode, *polynomial ; void addpolyn (polynomial &la, polynomial &lb)pa=la
3、next;pb=lb-next;pc=la;/pa,pb分别指向la,lb的第一个结点while (pa&pb) a=pa-expn;b=pb-expn;switch(*cmp(a,b) /a,b分别为pa,pb所指结点的指数case -1:pc=pa;pa=pa-next; break; /acoef+pb-coef; if (sum0)pa-coef=sum;pc=pa; elsepc-next=pa-next;free(pa); pa=pc-next;u=pb;pb=pb-next;free(u); break; /a=bcase 1: u=pb-next;pb-next=pa;pc-next=pb; pc=pb;pb=u; break; /ab /switch/whileif(pb) pc-next=pb; free(lb); 实验结果:实验小结实验的心得体会:一元多项式的相加运用的是有序链表来实现其功能的,在编程过程中,抽象数据类型Polynomial的实现是重要的一部分,用去很长时间。编程最重要的是运行程序和调试程序的过程。编写程序时要特别注意数据类型的定义。指导教师评语 指导教师 日期专心-专注-专业