数据结构----线性表的应用实验报告.doc 立即下载
2024-12-11
约8.7千字
约25页
0
163KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

数据结构----线性表的应用实验报告.doc

数据结构----线性表的应用实验报告.doc

预览

免费试读已结束,剩余 20 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验报告



课程名称____数据结构上机实验__________
实验项目______线性表的应用____________
实验仪器________PC机___________________




系别_____电子信息与通信学院___
专业___________
班级/学号________
学生姓名_________________
实验日期_______________________
成绩_______________________
指导教师_______________________



线性表的应用
实验目的:掌握线性链表的存储、运算及应用。利用链表实现一元多项式计算。
实验内容:
编写函数,实现用链表结构建立多项式;
编写函数,实现多项式的加法运算;
编写函数,实现多项式的显示;
测试:编写主函数,它定义并建立两个多项式,显示两个多项式,然后将它们相加并显示结果。变换测试用的多项式,检查程序的执行结果。
选做内容:修改程序,选择实现以下功能:
多项式求值:编写一个函数,根据给定的x值计算并返回多项式f(x)的值。测试该函数(从终端输入一个x的值,调用该函数并显示返回结果)。
多项式相减:编写一个函数,求两个多项式相减的多项式。
多项式相乘:编写一个函数,求两个多项式的乘积多项式。
算法说明:
多项式的建立、显示和相加算法见讲义。可修改显示函数,使输出的多项式更符合表达规范。
多项式减法:同次项的系数相减(缺项的系数是0)。例如a(x)=-5x2+2x+3,b(x)=-4x3+3x,则a(x)-b(x)=4x3-5x2-x+3。提示:a(x)-b(x)=a(x)+(-b(x))。
多项式乘法:两个多项式的相乘是“系数相乘,指数相加”。算法思想是用一个多项式中的各项分别与另一个多项式相乘,形成多个多项式,再将它们累加在一起。例如,a(x)=-5x2+2x+3,b(x)=-4x3+3x,则a(x)*b(x)=(-4x3)*(-5x2+2x+3)+(3x)*(-5x2+2x+3)=(20x5-8x4-12x3)+(-15x3+6x2+9x)=20x5-8x4-27x3+6x2+9x。
实验步骤:
根据实验报告的要求,我对文件夹里的C文件进行了丰富和修改,步骤如下:
链表结构建立多项式:
typedefstructpolynode
{floatcoef;//系数
intexp;//指数
structpolynode*next;//下一结点指针
}PNode;
编写函数,实现多项式的加法运算;
PNode*PolyAdd(PNode*f1,PNode*f2)//实现加法功能。
{//实现两多项式(头指针分别为f1和f2)相加,返回和多项式f3=f1+f2。
	PNode*pa=f1->next,*pb=f2->next,*pc,*f3,*q;
	intexp;
	floatcoef;
	f3=(PNode*)malloc(sizeof(PNode));//建立头指针
	f3->exp=-1;//对头指针初始化
	f3->next=f3;
	pc=f3;//将pc指向头指针
	while(pa->exp!=-1||pb->exp!=-1)//返回头指针时,跳出循环
	{
		if(pa->exp>pb->exp)
			{
				exp=pa->exp;
				coef=pa->coef;
				pa=pa->next;
			}
			elseif(pa->exp<pb->exp)
			{
				exp=pb->exp;
				coef=pb->coef;
				pb=pb->next;
			}
			else
			{
				exp=pa->exp;
				coef=pa->coef+pb->coef;
				pa=pa->next;
				pb=pb->next;
			}

		if(coef!=0)
		{
			q=(PNode*)malloc(sizeof(PNode));//建立新的q指针存放负指数的指针
			q->exp=exp;
			q->coef=coef;//将q插入链表中
			q->next=pc->next;
			pc->next=q;
			pc=q;
		}
	}
	returnf3;//返回
}
实现多项式的显示;
voidShowPloy(PNode*h)
//用if语句判断,当指数为0是,只输出系数;当指数为1时,输出系数和X;当系数为1时,输出X和指数。
{
	h=paixu(h);//整理函数,使之降幂排列
	PNode*p=h->next;
	if(p==h)
	{
		printf("表达式为空\n");
		return;
	}
	i
查看更多
王子****青蛙
实名认证
内容提供者
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

数据结构----线性表的应用实验报告

文档大小:163KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用