当前位置:   article > 正文

数据结构课程设计一元稀疏多项式计算器_一元稀疏多项式计算器数据结构

一元稀疏多项式计算器数据结构

数据结构课程设计任务书

学生姓名:            专业班级:

指导教师:             工作单位:

题  目: 一元稀疏多项式计算器                                     

基础要求:

一元稀疏多项式简单计算器的基本功能是:

(1) 输入并建立多项式 ;

(2) 输出多项式,输出形式为整数序列:n,cl,el,c2,e2,…,cn,en,其中n是多项式的项数,ci 和ei,分别是第 i 项的系数和指数,序列按指数降序排列

(3) 多项式ab相加,建立多项式a +b

(4) 多项式ab相减,建立多项式a -b

主要任务:

(1)设计一个一元稀疏多项式简单计算器。

(2)用带表头结点的单链表存储多项式。

(3)撰写课程设计报告

时间安排:

内容                  天数             地点

构思及收集资料          1              机房

编码与调试              3              机房

撰写论文                1              图书馆、机房

指导教师签名:                      年    月    日

 

目录

一元稀疏多项式计算器............................... 1

一、问题分析和任务定义.............................. 1

1.1 课程目的....................................... 1

1.2 任务需求....................................... 1

二、 数据结构的选择和概要设计........................ 2

2.1一元多项式的建立................................ 2

2.2创建一个一元多项式............................... 2

2.3 多项式相加...................................... 2

2.4 多项式相减...................................... 3

三、 编码实现..................................... 4

3.1一元多项式的建立................................ 4

3.2创建一个一元多项式............................... 4

3.3打印多项式...................................... 5

3.4 多项式相加...................................... 5

3.5 多项式相减...................................... 6

四、实验结果测试结果及其分析......................... 7

4.1调试分析........................................ 7

五、参考文献..................................... 10

完整资料私信我:

 

一元稀疏多项式计算器

一、问题分析和任务定义

1.1 课程目的

设计一个一元稀疏多项式简单计算器。

1.2 任务需求

基本要求:

(1) 输入并建立多项式 ;

(2) 输出多项式,输出形式为整数序列:n,cl,el,c2,e2,…,cn,en,其中n是多项式的项数,ci 和ei,分别是第 i 项的系数和指数,序列按指数降序排列;

(3) 多项式ab相加,建立多项式a +b

(4) 多项式ab相减,建立多项式a -b

测试数据:

(1)(2x+5x8-3.1x11) + (7-5x8+11x9)=(-3.lx11+11x9+2x+7)

(2)(6x-3-x+4.4x2-1.2x9) -(-6x-3+5.4x2-x2+7.8x15)

=(-7.8x15-1.2x9+12x-3-x)

(3)(1 +x + x2+x3+x4+x5)+(-x3-x4)=(1+x+x2+x5)

(4)(x+x3)+(-x-x3)=0

(5)(x+x100)+(x100 +x200)=(x+2x100+x200)

(6)(x+x2+x3)+0=x+x2+x3

(7) 互换上述测试数据中的前后两个多项式

2.1一元多项式的建立

使用带头结点的单链表存储多项式,插入查找和删除较为方便。数据域中存 储系数和指数,指针域指向下一个节点的位置。

 

2.2创建一个一元多项式

  1. 首先确定好多项式的项数m新建立一个节点node用来存贮读入的系    数coef和项数expn

(2)再使用尾插法来添加多项式的每一项,如果输入的系数是0,就不存储该       项。

2.3 多项式相加

  1. 建立三个多项式PaPbPc,其中Pc用于存放前两个多项式的和。
  2. 指针p1p2初始化,分别指向PaPb首节点的下一个节点,P3指向和多项式的头节点
  3. 当指针p1p2均未达到表尾时,则循环比较p1p2所指节点对应的指

数值。

 

     (p1->expn与p2->expn),有下列三种情况:

  1. 当p1->expn==p2->expn时,则将两个节点中的系数相加

    *若和不为0,则把p1与p2的系数相加,存到p3指向的节点,再把p1或p2的指数存到p3中,全部向后移动一个节点。

*若和为0,则p1和p2向后移动一个节点。

  1. 当p1->expn<p2->expn时,则应摘取p2所指的节点插入到p3指向的节    点中。
  2. 当p1->expn>p2->expn时,则则应摘取p1所指的节点插入到p3指向的    节点中。
  1. 将非空多项式的剩余段插入到p3所指的节点。

2.4 多项式相减

多项式的相减实现起来步骤相对简单,只需要把多项式Pb中每一项的系数取反,再相加就可以了。

  1. 初始化p2与node节点分别指向多项式Pb的第一项。
  2. 用node节点使Pb每一项的系数取反。
  3. 再调用多项式相加函数,计算结果放在Pc里。
  4. 最后用p2把Pb中每一项的系数还原。

3.1一元多项式的建立

结构体的定义

3.2创建一个一元多项式

3.3打印多项式

void PrintPolyn(LS *h)

{

    LS *p = h;

    int count = 1;            //设置一个变量用于控制打印符号

    while (p->next != NULL)

    {

        p = p->next;

        if (count != 1 && p->coef > 0//打印符号

        {

            printf("+");

        }

        if (p->expn == 0) // 如果指数为0只打印系数

        {

            printf("%g", p->coef);

        }

        else if (p->expn == 1)

        {

            printf("%gx", p->coef);

        }

        else

        {

            printf("%gx^%d", p->coef, p->expn);

        }

        count++;

    }

    printf("\n");

}

3.4 多项式相加

多项式相加的代码如下:

 

3.5 多项式相减

多项式相减代码部分:

四、实验结果测试结果及其分析

4.1调试分析

注:本次测试多项式的输入和输出都是按照指数的降序排列的。

测试数据:


(1)(2x+5x8-3.1x11) + (7-5x8+11x9)=(-3.lx11+11x9+2x+7)

(2)(6x-3-x+4.4x2-1.2x9) -(-6x-3+5.4x2-x2+7.8x15)

=(-7.8x15-1.2x9+12x-3-x)

 

  1. (1 +x + x2+x3+x4+x5)+(-x3-x4)=(1+x+x2+x5)

 

 

(4)(x+x3)+(-x-x3)=0

 

  1. (x+x100)+(x100 +x200)=(x+2x100+x200)

(6)(x+x2+x3)+0=x+x2+x3

 

  1. 严蔚敏.数据结构C语言版[M].清华大学出版社,2007.
  2. 董丽薇.“数据结构课程教学方法的改进[J].沈阳师范大学学报(自然科学版)2012.
  3. WingJM.ComputationalThinking.CommunicationsoftheACM200649(3)33-35.
  4. MarkM.Meerschaert.数学建模方法与分析[M].2.刘来福,杨淳,黄海洋,译.北京:机械工业出版社,2005.
  5. 刘昕,石乐义,元雪东.面向计算思维的数据结构课程教学改革[J].计算机教育,2013(196)1635-38.
  6. 姚诗斌.数据库系统基础.计算机工程与应用,1981 年第8
  7. 王昆仑,李红.数据结构与算法.北京:中国铁道出版社,20065
  8. 范德宝,于晓聪,丁伟祥.提高数据结构课程教学效果的探讨[J].黑龙江科技信息,2007.
  9. 高贤强,化希耀,陈立平.引入计算思维的《数据结构》教学改革研究[J].现代计算机:专业版,2015
  10. 潘彦.算法设计与分析基础[M].北京:清华大学出版社,2007.1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/891016
推荐阅读
相关标签
  

闽ICP备14008679号