| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 557 人关注过本帖
标题:线性表基本操作及其应用
只看楼主 加入收藏
答销网
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-12-1
收藏
 问题点数:0 回复次数:0 
线性表基本操作及其应用
一、内容
用C或C++语言设计并实现一个一元稀疏多项式的简单计算器。
一个稀疏多项式简单计算器的基本功能是:
1.    输入并建立多项式。
2.    输入多项式,序列按指数降序排列。
3.    多项式A(x)和B(x)相加,并建立多项式A(x)+B(x)。
4.    多项式A(x)和B(x)相减,并建立多项式A(x)-B(x)。
5.    给定x的值,计算多项式。
二、算法和方法
(1)首先建立一个结构体,接受系数和指数,还有后一项的地址。用malloc开辟动态内存空间,来保存输入的系数和指数。用这种方法建立两个链表,存两个多项式。
(2)建立一个排序函数,用冒泡法排序链表,按指数由从大到小的程序排列。再建立一个输出函数,分别将排列好的链表输出。
(3)重新建立一个链表,用来保存加法的多项式。加法实现方法:判断指数的大小,指数大的项放在加法链表的前面,指数小的项放在加法链表的后面。要是有指数相当的项,则先系数相加,然后按指数大小的顺序放入加法链表中,最后若某一个多项式中有剩余的项,则全放在加法链表的末尾,然后用前面的输出函数,将加法链表输出。
(4)再建立一个链表用来保存减法结果。用第一个多项式减第二个多项式,从指数大的开始,跟加法链表的方法基本一样,无非是第一个多项式中某一指数在第二个多项式中没有的话,就直接插入减法链表中,第二个多项式中某一指数在第一个多项式中没有的话,先将这一项的系数取相反数,再按指数大小插入减法链表中。指数相同的则要用第一个多项式的系数减去第二个多项式的系数,然后插入减法链表中。最后用输出函数将减法链表输出。
(5)用头文件math.h中的pow命令,来计算次幂问题,用系数乘以给定值的n次幂,最后输出结果。
(6)最后用free函数将所有的链表结点都释放掉。
三、要求
程序设计要求:
输入例子:
第一个多项式A(x)输入:2x^2+3x^6-8x^5
程序运行时输入:2 2
                3 6
                8 5
                0 0 作为输入项结束
第二个多项式B(x)输入:1x^2+3x^3+2x^5+5x^4
程序运行时输入:1 2
                3 3
                2 5
                5 4
                0 0 作为输入项结束
多项式的遍历结果输出格式为:
A(x)= 3X^6-8X^5+2X^2
         B(x)= 2X^5+5X^4+3X^3+1X^2
A(x)+B(x)= 3X^6-6X^5+5X^4+3X^3+3X^2
A(x)-B(x)= 3X^6-10X^5-5X^4-3X^3+1X^2
当输入x的值为:2
程序输出结果为:
A(2)+B(2)=116
A(2)-B(2)=-228
搜索更多相关主题的帖子: 计算器 空间 线性表 多项式 结构体 
2011-12-01 11:12
快速回复:线性表基本操作及其应用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023485 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved