标题:求助c++双向链表
只看楼主
hebccn
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-11-30
结帖率:0
已结贴  问题点数:20 回复次数:4 
求助c++双向链表
额。。。刚开始学C++,老师就布置这样的实验,新生表示无法下手。。。求助各位

定义一个多项式节点类CNode:
class CNode
{
private:
           int exp;//指数
           float coef;//系数
           CNode *next;
    CNode *prev;
public:
    CNode(float cf,int ep);//cf为系数,ep为指数
    ~CNode();//实现节点脱离链表功能
   
};
CNode *head=NULL;
//完成以下定义
CNode::CNode(float cf,int ep)
{
}
定义一个全局指针CNode *head(指向多项式双向链表中的第一项节点),
要求:
1、CNode的构造函数自动将构造的对象插入head链表中(按指数从大到校排列),在输入指数相同的项时需要进行合并;
2、main函数结束时依次释放(delete q)链表中的的节点。
//验证定义
void main()
{   
}
搜索更多相关主题的帖子: public private 多项式 
2012-11-30 14:48
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
得分:7 
回复 楼主 hebccn
https://bbs.bccn.net/viewthread.php?tid=388393&pid=2195083&page=1#pid2195083
参考上面的  虽然它实现是单链表  但是原理差不多  双链表只是多了往回指的成员数据(指向前驱)


上面最好是同一个老师教的, 不然......

这个题目你们老师出的不好  搞得c不是c  说是C++但是又偏了方向


[ 本帖最后由 寒风中的细雨 于 2012-11-30 15:07 编辑 ]
2012-11-30 15:03
mmmmmmmmmmmm
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:8
帖 子:388
专家分:1809
注 册:2012-11-2
得分:7 
楼上++

楼主 慢慢来学

我们的目标只有一个:消灭0回复!
while(1)
++money;
2012-11-30 15:06
lyj123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:152
注 册:2010-11-15
得分:7 
链表啊。。最简单的数据结构
双向链表 就是单链表加上一个前指针,它方便查找节点然而空间复杂度较大。
给出定义如下
节点类
class Node{
    ELEM value;//可以简单的用基本类型,数据很多可以封装在一个类中
    Node *next;
    Node *prev;  
};//曾经写过有一个类似的代码,现在贴上
程序代码:
#include<iostream>
#include<cassert>
using namespace std;
//C++希望封装指针,所以建议不用全局head,而是定义一个
//表类和一个节点类。一张表就定义一个表的对象
//定义节点类,这只是一个节点!!!而不是一张表
class Node
{
public://这里可以定义为私有(保护)类型,
//多加几个函数就行,比较符合封装思想
    ELEM value;
    Node *next;
    Node *prev;
    //Node(int ep,float cf,Node*p=NULL):exp(ep),coef(cf),next(p){}//cf为系数,ep为指数
    Node();
    ~Node(){}
    //void build(int,float);
    //void output();//题目未要求 不过可以用来测试

};
//定义表
/*不要弄混概念,在一个节点的构造函数中不可能初始化一张表!
    因为在构造函数中,这个节点还没有创建完成*/
class list{
private:
    Node*head;
    Node*curr;
public:
    list();//这个构造函数里可以进行所需的初始化
    ~list();
    void clear();//清除
    void build(int&,float&);//创建
    void display();//输出
    //bool is_empty();
    //bool is_full();
    //void insert();
    //这些没要求就不写了
};
非常简单,只需要把单链表稍微修改一下

相互帮助

2012-12-07 19:28
lyj123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:152
注 册:2010-11-15
得分:0 
建议以后楼主可以自学再问,思考了以后再发帖!
(显然楼主是刚接触编程就有老师的,本人寒颤初一开始到现在(初三)没有任何编程老师),

相互帮助

2012-12-07 19:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-389094-1-1.html




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

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