1 / 54
文档名称:

数据结构实验.doc

格式:doc   大小:214KB   页数:54页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验.doc

上传人:一花一叶 2019/2/25 文件大小:214 KB

下载得到文件列表

数据结构实验.doc

相关文档

文档介绍

文档介绍:贵州大学计算机科学与技术学院计算机科学与技术系上机实验报告课程名称:数据结构班级:计科093实验日期:2011-3-22姓名:吴征学号:07指导教师:程欣宇实验序号:一实验成绩:一、实验名称线性表及其应用二、实验目的及要求1、熟悉链表的创建,链表结点查找、插入和删除;2、理解链表用于存储线性表的优势和劣势;3、掌握利用链表存储一元多项式的数据结构,及其运算操作。三、实验环境VisualC++、实验内容1、输入并建立多项式;2、输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,….,cn,en,其中n是多项式的项数,ci和ei分别是第I项的系数和指数,序列按照指数降序排列;3、多项式a和b相加,建立多项式a+b;4、多项式a和b相减,建立多项式a-b。五、算法描述及实验步骤使用链表存储一元多项式c1Xe1+c2Xe2+…+cnXen如下图所示:^en如何实现这种线性链表表示的多项式的加法运算?根据一元多项式相加的运算规则:对于两个一元多项式中所有指数相同的项,对应系数相加,若其和不为零,则构成“和多项式”中的一项;对于两个一元多项式中所有指数不相同的项,则分别复抄到“和”多项式中去。实验步骤:1、2、3、六、调试过程及实验结果七、总结多项式系数小的八、附录#pragmaonce#include<iostream>structnode{intexp;//指数 doublecoef;//系数 node*next;//指针域};classpoly{private: node*head;public: poly(); voidin1poly(); voidin2poly(int,int[],double[]); voiddelpoly(); voidprtpoly(); polyoperator+(poly&); /*~poly(void);*/};#include""#include""#include"iostream"usingnamespacestd;poly::poly(){ head=NULL; return;}voidpoly::in1poly(){node*p,*k;inte;doublec;k=NULL;cout<<"输入:系数指数。输入-1结束"<<endl;cin>>c>>e;while(e>=0){p=newnode; p->exp=e; p->coef=c; p->next=NULL; if(k==NULL) head=p; else k->next=p; k=p; cin>>c>>e;}return;}voidpoly::in2poly(intn,inte[],doublec[]){ intk; node*p; for(k=n-1;k>=0;k--) { p=newnode; p->coef=c[k];p->exp=e[k]; p->next=head; head=p; } return;}voidpoly::delpoly(){node*p,*q;q=head;while(q!=NULL){ p=q->next; deleteq; q=p;}head=NULL;return;}voidpoly::prtpoly(){ node*k; if(head==NULL) cout<<"空表"<<endl; k=head; while(k!=NULL) { cout<<"("<<k->coef<<","<<k->exp<<")"<<endl; k=k->next; } return;}polypoly::operator+(poly&p2){polyp;node*k,*q,*m,*n;inte;doublec;k=NULL;m=head;n=;while((m!=NULL)&&(n!=NULL)){ if(m->exp==n->exp) { c=m->coef+n->coef; e=m->exp; m=m->next; n=n->next; } elseif(m->exp>n->exp) { c=n->coef; e=n->exp; n=n->next; } else { c=m->coef; e=m->exp; m=m->next; } if(c!=0) { q=newnode; q->exp=e; q->coef=c; q->next=NULL; if(k==NULL) =q; else k->next=q; k=q; }}while(m!=NULL){ c=m->coef; e=m->exp; m=m->next; q=newnode; q->exp=e; q->coef=c; q->next=NULL; if(k==NULL)