C++数据结构关于背包问题时间复杂度度的一个问题,问题如下

求助C++数据结构关于一元多项式相加的问题_数据结构吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:62,650贴子:
求助C++数据结构关于一元多项式相加的问题收藏
#include&iostream&class Lstruct Node{
};class Linklist{ private:
Node *public:
Linklist();
void set();
void print();
Linklist operator+(Linklist &p2);};Linklist::Linklist(){
first=new N
first=NULL;
size=0;}void Linklist::set(){
cout&&"多项式的元素个数为:";
cout&&"请输入第1项的系数:";
cout&&"请输入第1项的指数:";
m-&coef=x;
m-&next=NULL;
for(int i=2;i&=i++)
cout&&"请输入第"&&i&&"项的系数:";
cout&&"请输入第"&&i&&"项的指数:";
n-&coef=x;
n-&next=NULL;
m-&next=n;
}}void Linklist::print(){
while(m!=NULL)
if(m==first)
if(m-&coef!=0&&m-&exp!=0)
cout&&m-&coef&&"x^"&&m-&
else if(m-&coef!=0&&m-&exp==0)
if(m-&coef&0&&m-&exp!=0)
cout&&"+"&&m-&coef&&"x^"&&m-&
else if(m-&coef&0&&m-&exp!=0)
cout&&m-&coef&&"x^"&&m-&
else if(m-&coef&0&&m-&exp==0)
cout&&"+"&&m-&
else if(m-&coef&0&&m-&exp==0)
cout&&}Linklist Linklist::operator+(Linklist &p2){
Node *pre,*p,*qre,*q;
pre=this-&p=pre-&
qre=p2.q=qre-&
while(p!=NULL&&q!=NULL)
if(p-&exp&q-&exp)
if(p-&exp&q-&exp)
pre-&next=q;
q-&next=p;
if(p-&exp==q-&exp)
p-&coef=p-&coef+q-&
if(p-&coef==0)
pre-&next=p-&
qre-&next=q-&
if(q!=NULL)
pre-&next=q;
delete p2.
return *}int main(){
Linklist p1,p2,p3;
cout&&"请按指数由小到大的顺序定义多项式A(x):"&&
cout&&"输入的多项式A(x)为:";
p1.print();
cout&&"\n请按指数由小到大的顺序定义多项式B(x):"&&
cout&&"输入的多项式B(x)为:";
p2.print();
cout&&"\n多项式A(x)和多项式B(x)的和为:"&&
p3.print();
system("PAUSE");
return 0;}
运行成功,2个多项式A(x)和B(x)除了第一项,其它项都正确完成了相加操作,但是相加后的新多项式的第一项总是等于A(x)的第一项,B(x)的第一项不知为何“消失”了,没有参与相加。请大家看看是什么原因,谢谢
假设你的其他函数的内部实现以及功能是OK的,并且我们再假设你的输入数据也都是符合要求的。我们来看下操作符重载- -。 (高端了,多项式相加还操作符重载- -。)从while开始看。多项式的指数无非就是大于、小于、等于。这三个是并列的3者在同一时间只可能发生一个- -,因此3个if语句应该归成一个if-else if-else这种。 原因我们可以分析下if(p-&exp&q-&exp)
}第一个if语句不存在问题。执行完毕之后,pre指向的数据块和p指向的数据块都改变了。 如果你是并列的if语句。 而且很极端的我们上一次代码执行完毕之后- - p 等于 NULL了- -。那么你下面的if语句里面对于p-&exp的使用统统都是非法的- -。所以应该if(&) else if(&) else 这样写。
继续看代码。if(p-&exp&q-&exp)
pre-&next=q;
q-&next=p;
}这一部分功能大概就是将q这块的数据插入到你想的位置。用s(临时指针)保存了q-&next 然后q指向的数据块加到pre指向的数据块后面,pre-&next=q; q-&next = 这两句基本上就是实现在pre和p之间插入你想的那块数据。 q=s就是q指向它的那个多项式的下一块数据。。 这段代码存在一个问题。pre是不是p之前的数据? 那么你这么查了不就变成了pre
某块数据 p 这种了么?所以 我觉得这段代码该这么写。Node *s;
pre-&next=q;
q-&next=p;pre =//移动下pre指针。
q=s;当然我如果理解错误你可以不这么该。
继续看代码if(p-&coef==0)
pre-&next=p-&
}pre-&next=p-&这句是把p指向的数据块从链表里踢掉- -。 然后你delete了p。 请问你delete了p 还怎么p-&next.....写成这样吧- -
Node * temp = p-&
pre-&next=p-&
p =这里除了代码问题,有个东西我要吐槽的。 真心不懂指数为0为什么要删结点。。。
}这段代码改为pre=p;
p=p-&原因不解释。。显然。
继续qre-&next=q-&
q=qre-&终于 传说中的qre出现了- -。。。 代码其实到这里基本上也快结束了。。 说实话我看不到qre存在的意义。。。 这里代码的意思大概是删掉不要的p结点。 然后移动下q。。 和qre没有半毛钱关系。。node * qTemp=q-&
q=qTKO之。
if(q!=NULL)/*其实就是p等于NULL q不等于NULL - - 这么隐晦的写代码 小心以后坑了自己 写点注释吧亲*/
pre-&next=q;
delete p2.
}上面的代码大概就是把 q指向的后面一大串(可能只有一块)连到我们的目标串后。然后 delete p2.是把空的头结点的空间free掉。 然后我不小心看了下你的初始化Linklist::Linklist(){
first=new N
first=NULL;
size=0;}坑爹了。。。 first等于NULL... 你懂的。。。 应该是first-&next = NULL;吧少年- -。
+的重载分析完毕。 最后我有几点要吐槽的。 请问你相加完毕后处理了size了么? 。。。
size的作用在你的程序里 基本可以无视。。。。 哦 输入时起到了一丁点作用。。 其实 用c语言实现以下多项式相加就好了。。 而且不推荐重载之类这种来实现你的操作。。 知识杂糅到一起 对学习阶段无益处。 到此结束。
数据结构,亚马逊网上书城,满59元免运费,好书不间断!850多万种中外正版精品图书一网打尽!买数据结构,就上Z.CN!正版图书,天天低价特惠,让您挚爱阅读!
重新看了下代码假设你的其他函数的内部实现以及功能是OK的,并且我们再假设你的输入数据也都是符合要求的。我说的这句假设你没有做到。。。程序出现的问题也在这里。 函数的内部实现问题。问题其实在链表处理中很常见。 就是你的链表到底是带头还是不带头的。 按照你+的重载来看 你的链表是带头的。但是按你的初始化输入处理来看,你的链表却是带头的。
两种的初始化化不同 最明显的区别就是 一个先申请一块内存 然后放在那边不用- -一个啥都不用申请 直接开搞。、
登录百度帐号绪论 1§1.1 计算机与算法 21.1.1 古埃及人的绳索 21.1.2 欧几里德的尺规 31.1.3 起泡排序 41.1.4 算法 51.1.5 算法效率 8§1.2 复杂度度量 81.2.1 问题规模、运行时间及时间复杂度 91.2.2 渐进复杂度 91.2.3 空间复杂度 11§1.3 复杂度分析 121.3.1 常数复杂度O(1) 121.3.2 对数复杂度O(logn) 131.3.3 线性复杂度O(n) 141.3.4 多项式复杂度O(polynomial(n)) 151.3.5 指数复杂度O(2n) 151.3.6 复杂度层次 161.3.7 输入规模 16§1.4 *递归 171.4.1 线性递归 171.4.2 递归分析 181.4.3 递归模式 201.4.4 递归消除 221.4.5 二分递归 24§1.5 抽象数据类型 27习题 28第2章
向量 31§2.1 从数组到向量 322.1.1 数组 322.1.2 向量 32§2.2 接口 332.2.1 ADT接口 332.2.2 操作实例 342.2.3 Vector模板类 34§2.3 构造与析构 362.3.1 默认构造方法 362.3.2 基于复制的构造方法 362.3.3 析构方法 37§2.4 动态空间管理 372.4.1 静态空间管理 372.4.2 可扩充向量 382.4.3 扩容 382.4.4 ...
直属事业部
扫描关注官方微博
扫描关注官方微信
版权所有(C)2014 清华大学出版社有限公司 京ICP备号 京公网安备48号

我要回帖

更多关于 n皇后问题时间复杂度 的文章

 

随机推荐