实现多元多项式类
在实现多元多项式类的数据结构的使用上,我想有两种方法
一种是把每个项做成一个节点,这样的话就要动态的分配每个节点
另一种就是首先按x进行降幂排序,y,z等等作为系数,之后在每一项中,在按照y,z进行降幂排序,可是这么做在初始化的和进行运算符重载的过程中遇到了不少的困难。
所以,该用什么样的数据结构实现,怎样实现?
望诸位指点。
问题点数:100、回复次数:14Top
1 楼wistaria(听风听雨)回复于 2002-08-20 10:04:02 得分 0
感觉上还是把每项作为一个节点好些.Top
2 楼kof99th(小虫)回复于 2002-08-20 10:11:13 得分 0
第一种要好一点,直观。Top
3 楼mydadou(mydadou)回复于 2002-08-20 10:12:09 得分 0
但是,如果用第二种方法的话,如果方法好的话,可以用递归,比第一种方法效率高,
另外,一般做多项式多是按照第二种方法实现Top
4 楼mydadou(mydadou)回复于 2002-08-20 10:20:52 得分 0
另外,我要实现除法,第一种方法就太麻烦了
第二种方法可以提出系数,
f(x,y)=(3y^2+3y)x^2+(4y+3)x+33y;
g(x,y)=(y+1)x+(3y+2)
f=3*y*g(x,y)-k(y)x-h(y);
Top
5 楼mydadou(mydadou)回复于 2002-08-20 10:42:47 得分 0
望大家指点一下如何实现Top
6 楼eion(那个谁)回复于 2002-08-20 11:01:28 得分 0
你看这样是否合你意:
struct POLY
{
double coef;//系数
int exp[10]; // 指数数组,exp[0]表示x的指数,exp[1]表示y的指数...
POLY* next;// 链表,连接下一项
};
如果这样定义,那么你就可以将
3.7 * x^7 * y^3 * z^4
表示为
coef = 3.7;
exp[0] = 7; exp[1] = 3; exp[2] = 4;
...
我理解对否?Top
7 楼mydadou(mydadou)回复于 2002-08-20 11:06:03 得分 0
eion(那个谁):
首先谢谢你
但是有两个问题
1,数组的长度是不定的,因为不知道有几元
2,如何实现除法Top
8 楼mydadou(mydadou)回复于 2002-08-20 11:44:47 得分 0
关键是第二种方法的实现方法Top
9 楼eion(那个谁)回复于 2002-08-20 12:38:48 得分 50
数组长度不确定,可以采用再多一个变量——维数变量,然后再new,delete
多元多项式除法我没有做过,抱歉爱莫能助
如果是一元的多项式,你可以看看《高等代数》,里面有好几章都在讲多项式的除法Top
10 楼mydadou(mydadou)回复于 2002-08-20 12:45:43 得分 0
还是要谢谢eion(那个谁)Top
11 楼vampireonline(菜鸟)回复于 2002-08-20 12:49:03 得分 0
用广义表实现,详细情况请看清华大学出版社的《数据结构c++语言描述》(黄色封面的)Top
12 楼mydadou(mydadou)回复于 2002-08-20 12:51:38 得分 0
vampireonline(菜鸟)
能不能详细介绍一下Top
13 楼vampireonline(菜鸟)回复于 2002-08-20 12:56:09 得分 50
很难说明白的,最好是看看那本书,因为那里有详细的介绍,我考完期末考以后都忘记了,只记得有这样一种数据结构而已,真的很抱歉
================================================================
CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!
★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。
★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。
Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]
Top
14 楼mydadou(mydadou)回复于 2002-08-21 11:29:03 得分 0
谢谢vampireonline(菜鸟) ,我会去看一下的Top




