-
大小: 2.35MB文件类型: .zip金币: 2下载: 0 次发布日期: 2023-09-09
- 语言: C/C++
- 标签: C++ polynomail
资源简介
这是使用C++实现了多项式的加减乘运算,里面是一个完整的项目,运行环境是Win10+VS2013,直接点击Debug文件夹下的exe是可以直接运行的。如果你装的是VS2013,那么直接点击sln就可以打开项目文件,但是如果运行有问题,可以先删除Debug文件夹,因为文件路径不一样可能会有问题。或者直接新建一个项目,把cpp文件导入即可运行。
![](http://www.nz998.com/pic/58067.jpg)
代码片段和文件信息
#include
using namespace std;
//#define OVERFLOW 0
typedef struct LNode
{
float coef; //系数
int expn; //指数
struct LNode *next;
}LNode *linkList;
typedef linkList polynomail; //用带表头结点的有序链表表示多项式
void CreatPolyn(polynomail &P);
//输入系数和指数,建立表示一元多项式的有序链表P
void DestroyPolyn(polynomail &P);
//销毁一元多项式P
void PrintPolyn(polynomail P);
//打印输出一元多项式
int PolynLength(polynomail P);
//返回一元多项式P中的项数
void AddPolyn(polynomail &Pa polynomail &Pb);
//完成多项式相加运算,即:Pa=Pa+Pb并销毁一元多项式Pb
void SubtratPolyn(polynomail &Pa polynomail &Pb);
//完成多项式相减运算,即:Pa=Pa-Pb并销毁一元多项式Pb
void MultiplyPolyn(polynomail &Pa polynomail &Pb);
//完成多项式相乘运算,即:Pa=Pa*Pb并销毁一元多项式Pb
bool InitList(linkList &L)
{
L = (linkList)malloc(sizeof(LNode));
L->next = NULL; //建立一个带头结点的单链表
if (!L) //存储分配失败
exit(OVERFLOW);
return true;
}
void ListInsert_L(linkList &L float c int e)
{
if (c) //当系数不为0的时候
{
linkList p = L->next; //p指向L的首元结点
linkList q = L; //h指向L的头结点用于指向p的前一个结点
int flag = 1; //表示插入的数据的指数大于第一个元素
while (p)
{
if (e>p->expn)
{
p = p->next; //使p指向下一个结点
q = q->next;
}
else if (e == p->expn)
{
flag = 0;
break;
}
else
{
flag = -1;
break;
}
}
if (flag == 0)
{
p->coef = p->coef + c;
if (p->coef == 0) //系数为零时删除该结点
{
q->next = p->next;
p = q->next;
}
}
else if (flag == -1)
{
linkList s = (linkList)malloc(sizeof(LNode));
if (!s) //分配新结点失败
exit(OVERFLOW);
s->coef = c;
s->expn = e;
s->next = p;
q->next = s;
}
else
{
linkList s = (linkList)malloc(sizeof(LNode));
if (!s) //分配新结点失败
exit(OVERFLOW);
s->coef = c;
s->expn = e;
q->next = s;
s->next = NULL;
}
}
if (!c&&!L->next)
{
linkList s;
s = (linkList)malloc(sizeof(LNode));
if (!s) //分配新结点失败
exit(OVERFLOW);
L->next = s;
s->coef = 0;
s->next = NULL;
}
if (PolynLength(L)>1 && L->next->coef == 0)
{
L->next = L->next->next;
}
}
linkList GetNode_L(linkList L int n) //找到第i个结点
{
linkList p = L->next; //使p指向L的首元结点
for (int i = 1; i {
p = p->next;
}
return p;
}
void CreatPolyn(polynomail &P)
{
InitList(P);
}
void DestroyPolyn(polynomail &P)
{
linkList l = P->next;
while (!P->next)
{
P = P->next;
free(l);
l = P;
}
free(P);
}
void PrintPolyn(polynomail P)
{
if (P->next == NULL)
cout << “多项式不存在!!!!!!“;
else if (P->next->coef != 0)
{
linkList s = P->next;
for (int i = 0; i {
if (s->coef != 1 && s->coef != -1)
cout << s->coef;
else if (s->coef == -1)
cout << “-“;
if (s->expn != 1)
cout << “x^“ << s->expn;
else
cout << “x“;
if (s->next&&s->next->coef>0)
cout << “+“;
s = s->next;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-24 17:22 多项式\
目录 0 2018-04-24 17:22 多项式\Debug\
文件 71680 2015-11-08 14:04 多项式\Debug\多项式.exe
文件 399972 2015-11-08 14:04 多项式\Debug\多项式.ilk
文件 691200 2015-11-08 14:04 多项式\Debug\多项式.pdb
目录 0 2018-04-24 17:22 多项式\多项式\
目录 0 2018-04-24 17:22 多项式\多项式\Debug\
文件 240640 2015-11-08 14:04 多项式\多项式\Debug\vc120.idb
文件 323584 2015-11-08 14:04 多项式\多项式\Debug\vc120.pdb
文件 1277 2015-11-08 14:04 多项式\多项式\Debug\多项式.log
文件 163242 2015-11-08 14:04 多项式\多项式\Debug\多项式.obj
目录 0 2018-04-24 17:22 多项式\多项式\Debug\多项式.tlog\
文件 5284 2015-11-08 14:04 多项式\多项式\Debug\多项式.tlog\CL.read.1.tlog
文件 296 2015-11-08 14:04 多项式\多项式\Debug\多项式.tlog\CL.write.1.tlog
文件 556 2015-11-08 14:04 多项式\多项式\Debug\多项式.tlog\cl.command.1.tlog
文件 970 2015-11-08 14:04 多项式\多项式\Debug\多项式.tlog\li
文件 2390 2015-11-08 14:04 多项式\多项式\Debug\多项式.tlog\li
文件 276 2015-11-08 14:04 多项式\多项式\Debug\多项式.tlog\li
文件 157 2015-11-08 14:04 多项式\多项式\Debug\多项式.tlog\多项式.lastbuildstate
文件 6453 2015-11-08 14:04 多项式\多项式\多项式.cpp
文件 4091 2015-11-08 14:03 多项式\多项式\多项式.vcxproj
文件 950 2015-11-08 14:03 多项式\多项式\多项式.vcxproj.filters
文件 7208960 2015-11-24 10:49 多项式\多项式.sdf
文件 973 2015-11-08 13:59 多项式\多项式.sln
文件 18432 2015-11-24 10:49 多项式\多项式.v12.suo
- 上一篇:MyTask.zip
- 下一篇:2019牛客校招面试题附答案与解析c++篇.zip
相关资源
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
评论
共有 条评论