-
大小: 2.35MB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2023-09-09
- 語言: C/C++
- 標(biāo)簽: C++??polynomail??
資源簡介
這是使用C++實(shí)現(xiàn)了多項(xiàng)式的加減乘運(yùn)算,里面是一個完整的項(xiàng)目,運(yùn)行環(huán)境是Win10+VS2013,直接點(diǎn)擊Debug文件夾下的exe是可以直接運(yùn)行的。如果你裝的是VS2013,那么直接點(diǎn)擊sln就可以打開項(xiàng)目文件,但是如果運(yùn)行有問題,可以先刪除Debug文件夾,因?yàn)槲募窂讲灰粯涌赡軙袉栴}。或者直接新建一個項(xiàng)目,把cpp文件導(dǎo)入即可運(yùn)行。

代碼片段和文件信息
#include??
using??namespace??std;
//#define??OVERFLOW??0
typedef??struct??LNode
{
float??coef;??????//系數(shù)
int??expn;????????//指數(shù)
struct??LNode??*next;
}LNode?*linkList;
typedef??linkList??polynomail;???//用帶表頭結(jié)點(diǎn)的有序鏈表表示多項(xiàng)式
void??CreatPolyn(polynomail??&P);
//輸入系數(shù)和指數(shù),建立表示一元多項(xiàng)式的有序鏈表P
void??DestroyPolyn(polynomail??&P);
//銷毀一元多項(xiàng)式P
void??PrintPolyn(polynomail??P);
//打印輸出一元多項(xiàng)式
int??PolynLength(polynomail??P);
//返回一元多項(xiàng)式P中的項(xiàng)數(shù)
void??AddPolyn(polynomail??&Pa?polynomail??&Pb);
//完成多項(xiàng)式相加運(yùn)算,即:Pa=Pa+Pb并銷毀一元多項(xiàng)式Pb
void??SubtratPolyn(polynomail??&Pa?polynomail??&Pb);
//完成多項(xiàng)式相減運(yùn)算,即:Pa=Pa-Pb并銷毀一元多項(xiàng)式Pb
void??MultiplyPolyn(polynomail??&Pa?polynomail??&Pb);
//完成多項(xiàng)式相乘運(yùn)算,即:Pa=Pa*Pb并銷毀一元多項(xiàng)式Pb
bool??InitList(linkList??&L)
{
L?=?(linkList)malloc(sizeof(LNode));
L->next?=?NULL;??//建立一個帶頭結(jié)點(diǎn)的單鏈表
if?(!L)?????????????//存儲分配失敗
exit(OVERFLOW);
return??true;
}
void??ListInsert_L(linkList??&L?float??c?int??e)
{
if?(c)????????????//當(dāng)系數(shù)不為0的時候
{
linkList??p?=?L->next;????//p指向L的首元結(jié)點(diǎn)
linkList??q?=?L;??????????//h指向L的頭結(jié)點(diǎn)用于指向p的前一個結(jié)點(diǎn)
int??flag?=?1;?????//表示插入的數(shù)據(jù)的指數(shù)大于第一個元素
while?(p)
{
if?(e>p->expn)
{
p?=?p->next;????//使p指向下一個結(jié)點(diǎn)
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)?????//系數(shù)為零時刪除該結(jié)點(diǎn)
{
q->next?=?p->next;
p?=?q->next;
}
}
else??if?(flag?==?-1)
{
linkList??s?=?(linkList)malloc(sizeof(LNode));
if?(!s)?????????//分配新結(jié)點(diǎn)失敗
exit(OVERFLOW);
s->coef?=?c;
s->expn?=?e;
s->next?=?p;
q->next?=?s;
}
else
{
linkList??s?=?(linkList)malloc(sizeof(LNode));
if?(!s)?????????//分配新結(jié)點(diǎn)失敗
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)?????????//分配新結(jié)點(diǎn)失敗
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個結(jié)點(diǎn)
{
linkList??p?=?L->next;??//使p指向L的首元結(jié)點(diǎn)
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?<“多項(xiàng)式不存在!!!!!!“;
else??if?(P->next->coef?!=?0)
{
linkList??s?=?P->next;
for?(int?i?=?0;?i {
if?(s->coef?!=?1?&&?s->coef?!=?-1)
cout?<coef;
else?if?(s->coef?==?-1)
cout?<“-“;
if?(s->expn?!=?1)
cout?<“x^“?<expn;
else
cout?<“x“;
if?(s->next&&s->next->coef>0)
cout?<“+“;
s?=?s->next;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-24?17:22??多項(xiàng)式\
?????目錄???????????0??2018-04-24?17:22??多項(xiàng)式\Debug\
?????文件???????71680??2015-11-08?14:04??多項(xiàng)式\Debug\多項(xiàng)式.exe
?????文件??????399972??2015-11-08?14:04??多項(xiàng)式\Debug\多項(xiàng)式.ilk
?????文件??????691200??2015-11-08?14:04??多項(xiàng)式\Debug\多項(xiàng)式.pdb
?????目錄???????????0??2018-04-24?17:22??多項(xiàng)式\多項(xiàng)式\
?????目錄???????????0??2018-04-24?17:22??多項(xiàng)式\多項(xiàng)式\Debug\
?????文件??????240640??2015-11-08?14:04??多項(xiàng)式\多項(xiàng)式\Debug\vc120.idb
?????文件??????323584??2015-11-08?14:04??多項(xiàng)式\多項(xiàng)式\Debug\vc120.pdb
?????文件????????1277??2015-11-08?14:04??多項(xiàng)式\多項(xiàng)式\Debug\多項(xiàng)式.log
?????文件??????163242??2015-11-08?14:04??多項(xiàng)式\多項(xiàng)式\Debug\多項(xiàng)式.obj
?????目錄???????????0??2018-04-24?17:22??多項(xiàng)式\多項(xiàng)式\Debug\多項(xiàng)式.tlog\
?????文件????????5284??2015-11-08?14:04??多項(xiàng)式\多項(xiàng)式\Debug\多項(xiàng)式.tlog\CL.read.1.tlog
?????文件?????????296??2015-11-08?14:04??多項(xiàng)式\多項(xiàng)式\Debug\多項(xiàng)式.tlog\CL.write.1.tlog
?????文件?????????556??2015-11-08?14:04??多項(xiàng)式\多項(xiàng)式\Debug\多項(xiàng)式.tlog\cl.command.1.tlog
?????文件?????????970??2015-11-08?14:04??多項(xiàng)式\多項(xiàng)式\Debug\多項(xiàng)式.tlog\li
?????文件????????2390??2015-11-08?14:04??多項(xiàng)式\多項(xiàng)式\Debug\多項(xiàng)式.tlog\li
?????文件?????????276??2015-11-08?14:04??多項(xiàng)式\多項(xiàng)式\Debug\多項(xiàng)式.tlog\li
?????文件?????????157??2015-11-08?14:04??多項(xiàng)式\多項(xiàng)式\Debug\多項(xiàng)式.tlog\多項(xiàng)式.lastbuildstate
?????文件????????6453??2015-11-08?14:04??多項(xiàng)式\多項(xiàng)式\多項(xiàng)式.cpp
?????文件????????4091??2015-11-08?14:03??多項(xiàng)式\多項(xiàng)式\多項(xiàng)式.vcxproj
?????文件?????????950??2015-11-08?14:03??多項(xiàng)式\多項(xiàng)式\多項(xiàng)式.vcxproj.filters
?????文件?????7208960??2015-11-24?10:49??多項(xiàng)式\多項(xiàng)式.sdf
?????文件?????????973??2015-11-08?13:59??多項(xiàng)式\多項(xiàng)式.sln
?????文件???????18432??2015-11-24?10:49??多項(xiàng)式\多項(xiàng)式.v12.suo
- 上一篇:MyTask.zip
- 下一篇:2019牛客校招面試題附答案與解析c++篇.zip
評論
共有 條評論