-
大小: 2.35MB文件类型: .zip金币: 1下载: 0 次发布日期: 2023-09-09
- 语言: C/C++
- 标签: C++ polynomail
资源简介
这是使用C++实现了多项式的加减乘运算,里面是一个完整的项目,运行环境是Win10+VS2013,直接点击Debug文件夹下的exe是可以直接运行的。如果你装的是VS2013,那么直接点击sln就可以打开项目文件,但是如果运行有问题,可以先删除Debug文件夹,因为文件路径不一样可能会有问题。或者直接新建一个项目,把cpp文件导入即可运行。
代码片段和文件信息
#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
相关资源
- 2019牛客校招面试题附答案与解析c++篇
- C++语言程序设计基础全部讲稿郑莉
- C++ Qt5 范例开发大全.pdf
- 道格拉斯普克算法的C++实现
- 基于C++的微信打飞机小游戏
- qt c++ webQQ 源码
- 中文分词C++代码
- C++图书管理系统课程设计
- 解决Microsoft Visual C++ 14.0 is required
- K-means算法的C++实现
- RFIDC/C++门禁系统 RFID源码
- C++ MFC图书管理系统(Access数据库)
- 122mm火箭弹弹道计算程序c++.
- visualc++音频视频处理技术及工程实践
- vc++实现曲线显示界面,曲线类型有:
- 用VC++实现打开并显示bmp图片
- 编译原理与技术李文生:LR分析法C+
- 自己做的C++MFC计算器程序
- 多人对战连连看游戏VC++源码
- 英语小词典数据结构课设 C++
- C++读取 excel 完整程序源代码
- 各个软件公司+面试题+笔试题+c++有答
- C++生成二维码并保存成BMP图片
- Visual C++MFC编程实例
- More Effective C++.pdf 高清 目录
- 使用C++进行图像的DCT变换
- VC++实现记事本的各种功能
- Microsoft Visual C++ Build Tools 2017
- 简易PC虚拟串口示波器VC++整个工程源
- C++黑白棋游戏完全代码
评论
共有 条评论