单链表应用:多项式实现(C++)

本文介绍了如何使用C++通过单链表实现数据结构,并将其应用于多项式的加法和乘法运算,详细阐述了单链表的定义、模板类以及在多项式操作中的具体类定义和成员函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单链表C++实现

1. 定义

​ 一般用两个类,结点类linkNode和链表类list,协同表示单链表,主要有3种方式:

  • 复合类
class List;

class LinkNode{
   
friend class List;
private:
    int data;
    LinkNode *link;
};

class List{
   
public:
    //some operations

private:
    LinkNode* first;
};
  • 嵌套类
class List{
   
public:
    //some operations

private:
    class LinkNode{
   
    public:
        int data;
        LinkNode *link;
    };
    LinkNode* first;
};
  • 基类和派生类
class LinkNode{
   
protected:
    int data;
    LinkNode *link;
};

class List : public LinkNode{
   
private:
    LinkNode* first;
public:
    //some operations
};

2.单链表模板类

template <class T>
struct LinkNode{
   
    T data;
    LinkNode<T> *link;
    //construct function
    LinkNode(LinkNode<T> *ptr = NULL) {
   link = ptr;}
    LinkNode(const T& item, LinkNode<T> *ptr = NULL)
    {
   
        data = item;
        link = ptr;
    }
};

template<class T>
class List : public LinearList<T> {
   
    List() {
    first = new LinkNode<T>; }
    List(const T& x) {
    first = new LinkNode<T>(x); }
    List(List<T>& L);   //copy construct function
    ~List() {
   makeEmpty();}

    //operations
    void makeEmpty();
    int Length()const;
    LinkNode<T> *getHead()const {
    return first; }
    LinkNode<T> *Search(T x);   //search x
    LinkNode<T> * Locate(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值