数据结构与算法实验:实验二 链表实现一元多项式的加法/减法/乘法/求导

表达式求值是进行数据处理的最基本操作。请编写程序完成一个简单算术表达式的求值。要求如下:

(1) 运算符包括:+、-、*、-、^(乘方)、括号

(2)运算量为数值常量,根据自己的能力可以对运算量做不同的约束,例如1位整数、多位整数、实数等(会有不同的测试用例);

输入:一行,即表达式,以“=”结束。例如:

       5*(8-3)+6/5=

输出:一行,即表达式的值。结果值为整数时输出为整数,如果有小数时保留5位小数。

       26.20000
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
using namespace std;

int *create(int x,int y)
{
   
    int *a;
    a=new int[2];
    a[0]=x,a[1]=y;
    return a;
}

template<class T>
struct node
{
   
    T x;
    node<T>* nex,*pre;
    node()
    {
   
        nex=NULL;
        pre=NULL;
    }
    node(T a)
    {
   
        x=a;
        pre=nex=NULL;
    }
};
template<class T>
class Link
{
   
public:
    node<T> *e,*head,*last;
    int siz;
    Link();
    Link(const Link& L);
    ~Link();
    void push_back(T val);
    void build();
    void Insert(int pos,T x);
    void del(T x);
    int Search(int x);
    void print();
    void Sort();
    void deleteAll();
};

template <class T>
Link<T>::Link()
{
   
    head = new node<T>;
    last = new node<T>;
    head->nex = last;
    head->pre = NULL;
    last->nex = NULL;
    last->pre = head;
    siz = 0;
}

template <class T>
Link<T>::Link(const Link &L)
{
   
    head = new node<T>;
    head->pre = NULL;
    last = new node<T>;
    head->nex = last;
    last->pre = head;
    siz = 0;
    e = L.head;
    while(e->nex != L.last)
    {
   
        e = e->nex;
        last->x = e->x;
        node<T> *p = new node<T>;
        p->pre = last;
        last->nex = p;
        last = p;
        siz++;
    }
    last->nex = NULL;
}

template <class T>
Link<T>::~Link()
{
   
    if(siz == 0)
    {
   
        delete head;
        delete last;
        head = NULL;
        last = NULL;
        
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值