数据结构_C语言_实验一_线性结构 ——一元多项式求导
文章目录
- 实验一 线性结构
- 1. 实验目的
- 2. 实验内容
- 3. 实验要求
- 4. 实验过程
- (1) 问题描述
- (2) 数据结构与算法设计
- (3) 程序实现
- (4) 实验结果
- (5) 实验总结
实验一 线性结构
——一元多项式求导
1. 实验目的
熟练掌握链式线性表的基本操作
2. 实验内容
设计函数求一元多项式的导数。
3. 实验要求
(1) 输入格式说明:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
(2) 输出格式说明:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。
(3) 样例输入与输出:
序号 | 输入 | 输出 |
---|---|---|
1 | 3 4 -5 2 6 1 -2 0 | 12 3 -10 1 6 0 |
2 | 5 20 -7 4 3 1 | 100 19 -28 3 3 0 |
3 | 1000 0 | 0 0 |
4 | -1000 1000 999 0 | -1000000 999 |
4. 实验过程
(1) 问题描述
(问题分析及功能描述)
(2) 数据结构与算法设计
(逻辑结构分析+存储结构设计+关键算法思路+伪代码或流程图)
(3) 程序实现
(函数说明+函数之间的调用关系+关键算法的实现代码)
#include<stdio.h>
#include<stdlib.h>
/*数学建模:建立链表,其中每个节点PolyNode存储系数和指数,(c,e) => c*x^e
*/
typedef struct PolyNode *Polynomial;
struct PolyNode {int coefficient;//系数int exponent;//指数int order;//阶数Polynomial link;
};void Attach( int c, int e, Polynomial *pRear );// 将由(c, e)构成的新项插入到pRear间接指向的结点后面
Polynomial ReadPoly();//读入多项式
Polynomial FirstDerivation(Polynomial P);//求导函数
void PrintPoly(Polynomial P);//输出多项式int main()
{Polynomial P,Q;P = ReadPoly();/* 读输入多项式 */Q = FirstDerivation( P ); /* 求导函数 */PrintPoly( Q ); /* 输出多项式的一阶导 */return 0;
}void Attach( int c, int e, Polynomial *pRear ){/* 将由(c, e)构成的新项插入到pRear间接指向的结点后面 */Polynomial P;P=(Polynomial )malloc(sizeof(struct PolyNode));P->coefficient=c;P->exponent=e;P->link=NULL;(*pRear)->link = P;*pRear = P;
}Polynomial ReadPoly(){Polynomial P, Rear, t;int c,e,terms;printf("Input the number of polynomial terms:");scanf("%d",&terms);P= (Polynomial )malloc(sizeof(struct PolyNode));Rear = P;for (int i = 0; i < terms; ++i) {scanf("%d %d",&c,&e);Attach(c,e,&Rear);}t=P; P=P->link; free(t);P->order=0;return P;
}Polynomial FirstDerivation(Polynomial P) {Polynomial P1,P2,Q;P2=(Polynomial )malloc(sizeof(struct PolyNode));*P2 = *P; P1 = NULL; Q=P2;while ( P2 && P2->exponent){P2->coefficient *= P2->exponent;P2->exponent--;P1 = P2;P2 = P2->link;}if ( P2 ){if ( P1 ){free( P2 );P1->link = NULL;}elseP2->coefficient=0;}Q->order++;return Q;
}void PrintPoly(Polynomial P){int flag=0;while(P){if (!flag)flag=1;else printf(" ");printf("%d %d",P->coefficient,P->exponent);P = P->link;}printf("\n");
}
(4) 实验结果
(运行截图+结果分析描述+遇到的问题和解决办法等)
(5) 实验总结
(实验体会、学习收获、过程总结等)
数据结构_C语言_实验一_线性结构 ——一元多项式求导相关推荐
- 密码学实验报告c语言程序,密码学_实验一_古典密码算法_C语言.doc
您所在位置:网站首页 > 海量文档  > 高等教育 > 实验设计 密码学_实验一_古典密码算法_C语言.doc8页 本 ...
- c语言程序设计实验指导交大答案,C语言程序设计实验指导_上交大_课前练习-改错-完善程序-课后练习参考答案--2018.10修改.doc...
C语言程序设计实验指导_上交大_课前练习-改错-完善程序-课后练习参考答案--2018.10修改.doc 实验一 Visual C集成环境实验内容(一)程序改错1.(1)无法运行(2)将第二个C程序重 ...
- 华信c语言程序设计答案,C语言程序设计实验指导_颜晖_主_....doc
C语言程序设计实验指导_颜晖_主_....doc C语言程序设计部分实验参考答案 实验2 #include int main(){//2-1-2 int c,f=150; c=f*5/9-32*5/9 ...
- 数据结构C语言版(清华大学_唐国民_第3版)单链表
//数据结构C语言版(清华大学_唐国民_第3版) //单链表功能实现,书 P25 例子2.3.3,与书上代码有些许出入,不用在意,重要的是思路 #include<stdio.h> #inc ...
- 数据结构c语言版实验报告2,数据结构(C语言版) 实验报告 (2)
<数据结构(C语言版) 实验报告 (2)>由会员分享,可在线阅读,更多相关<数据结构(C语言版) 实验报告 (2)(15页珍藏版)>请在人人文库网上搜索. 1.数据结构(C语言 ...
- java文件加密解密实验报告_《网络信息安全技术》_实验报告_破译vigenamp#232;re_密码加密的密文...
<<网络信息安全技术>_实验报告_破译vigen&#232;re_密码加密的密文>由会员分享,可在线阅读,更多相关<<网络信息安全技术>_实验报 ...
- c语言程序设计循环结构实验报告,C语言程序设计实验报告:循环结构程序设计...
循环结构程序设计 C语言实验报告 课程__C程序设计_实验名称_循环结构程序设计__第 页 共 页 系 别__电气工程______________________ 实 验 日 期 2010 年 4 月 ...
- c语言百人搬百砖答案,C语言程序设计实验四:循环结构
C语言程序设计实验四:循环结构 1. 编写求n!的程序:要求输入n,然后计算输出n的阶乘. #include "stdio.h" void main() { long i,fac, ...
- 【数据结构(C语言版)系列一】 线性表
最近开始看数据结构,该系列笔记简单记录总结下所学的知识,更详细的推荐博主StrayedKing的数据结构系列,笔记部分也摘抄了博主总结的比较好的内容. 一些基本概念和术语 数据是对客观事物的符号表示, ...
最新文章
- centOS 7 安装man中文版手册
- 如何查看功能的源代码?
- python安装包_Python开发环境搭建
- python 中参数 ,解包和变量的入门
- c++中实现域内,左,右对齐的方法
- go语言的rune类型
- Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
- oracle hang analyze,hanganalyze 分析数据库挂起
- ISTQB高级-测试经理国际认证试题及答案(二)
- DOS批处理高级教程精选(二)
- [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 OnActionExecuting内如何获取参数...
- el-input输入值无法在输入框显示
- unity, 删除animationEvent
- Leetcode199二叉树的右视图(宽搜)
- GIS离线地图的下载与发布
- NPT PT G螺纹
- 常见植被指数及适用场景
- 4G多卡聚合路由器解决视频直播中的网络不稳定问题
- Selenium html之于ul标志代码分析与使用
- 用JavaScript写的贪吃蛇游戏(很简单,很详细)