社区
C语言
帖子详情
帮看一个数据结构的问题
vitamines
2004-06-26 11:08:38
将一个循环链表表示的稀疏多项式分解成两个多项式,使这两个多项式中各自仅含奇次项和偶次项,要求利用原来的循环链表的结点空间构成着两个链表
希望能给出代码
...全文
134
7
打赏
收藏
帮看一个数据结构的问题
将一个循环链表表示的稀疏多项式分解成两个多项式,使这两个多项式中各自仅含奇次项和偶次项,要求利用原来的循环链表的结点空间构成着两个链表 希望能给出代码
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qingdaolitao
2004-06-27
打赏
举报
回复
建议你将属性link换成next,first换成head舒服点。
另外,用不着用循环链表,单链表就可以把。
qingdaolitao
2004-06-27
打赏
举报
回复
重写了Classify(),其他的用你的function,对否?
void CircList::Classify( )
{
CircList oddlist,evenlist; //构造奇偶项的头结点。
CircListNode * p=first->link; //指向原多项式第一项。
CircListNode * q=p; //指向p
for(;p!=first;p=q->link) {
q=p;
if(p->exp%2==1){
//oddlist.Insert(p->coef,p->exp); 调用insert会重新new出一个结点,没利用原结点。
p->link=oddlist.getfirst()->link ;
oddlist.getfirst()->link =p;
}
else{
//evenlist.Insert(p->coef,p->exp); 同上。
p->link=evenlist.getfirst()->link ;
evenlist.getfirst()->link=p;
}
}
oddlist.last =oddlist.getlast ();
evenlist.last =evenlist.getlast ();
display( );
}
qingdaolitao
2004-06-27
打赏
举报
回复
收藏,修改中。。。
vitamines
2004-06-27
打赏
举报
回复
有没有行啊?
qingyuan18
2004-06-26
打赏
举报
回复
“一个循环链表表示的稀疏多项式”,
怎么表示的?
vitamines
2004-06-26
打赏
举报
回复
#include <iostream.h>
class CircList;
class CircListNode {
friend class CircList;
public:
CircListNode ( int xcoef = 0,int xexp=0,CircListNode *next = NULL )
: coef (xcoef),exp(xcoef),link (next){ } //构造函数private:
private:
int coef;
int exp; //结点数据
CircListNode *link; //链接指针
};
class CircList {
private:
CircListNode *first, *last;
//链表的表头指针、当前指针和表尾指针
public:
CircList( );
void Classify( );
void Insert(int xcoef,int xexp);
CircListNode * geteven( );
void display( );
CircListNode * getfirst( );
void link(CircList & list1);
CircListNode * getlast( );
};
void CircList::Insert(int xcoef,int xexp)
{
CircListNode *p=new CircListNode(xcoef,xexp,first);
last->link=p;
last=p;
}
CircList::CircList( )
{
first=last=new CircListNode(0,0,NULL);
first->link=last;
last->link=first;
}
CircListNode * CircList::geteven( )
{
Classify( );
CircListNode *p=first->link;
while(p!=first&&((p->exp)%2==1))
{
p=p->link;
}
if((last->exp%2)==1) p=NULL;
return p;
}
void CircList::display( )
{
CircListNode * p=first->link;
for(;p!=first;p=p->link)
cout<<"("<<p->coef<<","<<p->exp<<") ";
}
CircListNode * CircList::getfirst( )
{
return first;
}
void CircList::Classify( )
{
CircList oddlist,evenlist;
CircListNode * p=first->link;
for(;p!=first;p=p->link)
{
if(p->exp%2==1) oddlist.Insert(p->coef,p->exp);
else evenlist.Insert(p->coef,p->exp);
}
oddlist.link(evenlist);
CircListNode * q=oddlist.getfirst( );
p=first->link;
q=q->link;
for(;p!=first;p=p->link)
{
p->coef=q->coef;
p->exp=q->exp;
q=q->link;
}
display( );
}
void CircList::link(CircList & list1)
{
last->link=list1.getfirst( )->link;
list1.getlast( )->link=first;
}
CircListNode * CircList::getlast( )
{
CircListNode *p=first->link;
for(;p!=first;p=p->link)
;
return p;
}
vitamines
2004-06-26
打赏
举报
回复
2x43+3x30+6x29+8x18+...+...
图解
数据结构
与算法
另外,大厂面试
数据结构
和算法也是我们绕不过去的
一个
门槛。这部分恰好又不是突击能够解决的知识储备,所以很有必要系统地学习一下
数据结构
和算法了 【推荐您学习这门课程的原因】 1、图解
数据结构
与算法:拒绝抽象...
【C
数据结构
】迷宫
问题
前言:本章记录作者学习中,遇到的两个比较有趣的
问题
,
一个
简单和
一个
较复杂的迷宫
问题
。 一、迷宫
问题
的思路 让我们先来看简单的:迷宫
问题
它的具体要求: 输入描述: 输入两个整数,分别表示二维数组的...
【算法与
数据结构
】—— 并查集
并查集是一种树型的
数据结构
,用于处理一些不相交集合的合并及查询
问题
(即所谓的并、查)。比如说,我们可以用并查集来判断
一个
森林中有几棵树、某个节点是否属于某棵树等。并查集主要由
一个
整型数组pre[ ]和两个...
【
数据结构
】- 【考研复试面试题】-汇总大合集
数据结构
-考研复试面试题-汇总大合集 写在前面的话:第二次写文章,本篇文章涉及内容主要包括
数据结构
与算法,包含市面上最热门的面试题,加以总结,用于本人的专业课面试复习,包括一些个人理解和总结, 如果能帮到...
数据结构
的作用
为什么计算机的孩子要学好
数据结构
?
数据结构
课程介绍: 《
数据结构
》是计算机科学课程体系中核心课程之首,作为学科的专业基础课,具有承上启下的重要作用。对应于学科 中
问题
求解的理论、抽象和设计的方法论...
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章