完美的数据结构大作业之选。C语言+链表 实现。不用提前知道多项式项数,可以自动排序,可以合并同类项,可以进行加法、乘法运算。VS环境可运行,其他编程软件找到cpp复制粘贴即可
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 34816 2018-04-06 17:22 Polyn.vsPolynv15.suo
文件 3604480 2018-04-06 17:20 Polyn.vsPolynv15ipch821bce403b2aa40d.ipch
文件 38535168 2018-04-01 08:55 Polyn.vsPolynv15ipchAutoPCH4ab7d8955a3ff253POLYN.ipch
文件 3080192 2018-04-01 11:21 Polyn.vsPolynv15ipchAutoPCH4f5c1cc49bbb10c7POLYN.ipch
文件 3080192 2018-04-06 09:26 Polyn.vsPolynv15ipchAutoPCH8e337353e6b4e169POLYN.ipch
文件 38535168 2018-04-01 10:40 Polyn.vsPolynv15ipchAutoPCHdbb77071d36785ddPOLYN.ipch
文件 39936 2018-04-06 17:22 PolynDebugPolyn.exe
文件 472572 2018-04-06 17:22 PolynDebugPolyn.ilk
文件 1241088 2018-04-06 17:22 PolynDebugPolyn.pdb
文件 89 2018-04-06 17:22 PolynPolynDebugPolyn.log
文件 36139 2018-04-06 17:22 PolynPolynDebugPolyn.obj
文件 31838 2018-04-01 15:30 PolynPolynDebugpolyn.obj.enc
文件 2883584 2018-03-28 23:39 PolynPolynDebugPolyn.pch
文件 1606 2018-04-06 17:22 PolynPolynDebugPolyn.tlogCL.command.1.tlog
文件 26868 2018-04-06 17:22 PolynPolynDebugPolyn.tlogCL.read.1.tlog
文件 1066 2018-04-06 17:22 PolynPolynDebugPolyn.tlogCL.write.1.tlog
文件 1312 2018-04-06 17:22 PolynPolynDebugPolyn.tloglink.command.1.tlog
文件 3094 2018-04-06 17:22 PolynPolynDebugPolyn.tloglink.read.1.tlog
文件 568 2018-04-06 17:22 PolynPolynDebugPolyn.tloglink.write.1.tlog
文件 212 2018-04-06 17:22 PolynPolynDebugPolyn.tlogPolyn.lastbuildstate
文件 5517 2018-03-28 23:39 PolynPolynDebugstdafx.obj
文件 257024 2018-04-06 17:22 PolynPolynDebugvc141.idb
文件 159744 2018-04-06 17:22 PolynPolynDebugvc141.pdb
文件 12274 2018-04-06 17:22 PolynPolynPolyn.cpp
文件 8207 2018-03-28 23:23 PolynPolynPolyn.vcxproj
文件 1250 2018-03-28 23:23 PolynPolynPolyn.vcxproj.filters
文件 165 2018-03-28 23:23 PolynPolynPolyn.vcxproj.user
文件 312 2018-03-28 23:23 PolynPolynstdafx.cpp
文件 366 2018-03-28 23:23 PolynPolynstdafx.h
文件 370 2018-03-28 23:23 PolynPolyn argetver.h
............此处省略18个文件信息
//#include
//#include
#include“stdafx.h“
#include
#include
//#define ERROR 0;
//#define OVERFLOW 0;
typedef struct Polyn {
int expn coef;
Polyn* next;
}*P;
P CreatePolyn(Polyn *P); // 创建节点
Polyn* SelectSort(Polyn *Pa); // 选择排序
Polyn* MergePolyn(Polyn *Pa); //合并同类项
void PrintPolyn(Polyn *P); // 打印多项式
int cmp(int a int b); // 比较函数
P AddPolyn(P Pa P Pb); // 多项式相加
P MultiPolyn(P Pa P Pb); // 多项式相乘
/*------------------------Dome---------------------------------*/
int main()
{
P Pa Pb Pc Pd;
Pa = (Polyn *)malloc(sizeof(Polyn));
Pb = (Polyn *)malloc(sizeof(Polyn));
Pa = CreatePolyn(Pa);
Pb = CreatePolyn(Pb);
Pd = MultiPolyn(Pa Pb);
Pc = AddPolyn(Pa Pb);
system(“pause“);
return 0;
}
/*-----------------------打印多项式------------------------------*/
void PrintPolyn(Polyn* P)
{
Polyn* q = P->next;
//若多项式为空
printf(“
“);
while (q->next != NULL)
{
if (q->coef>0) printf(“%d*x^%d+“ q->coef q->expn);
else if (q->coef < 0) {
printf(“(%d)*x^%d+“ q->coef q->expn);
}
else printf(““);
q = q->next;
}
if (q->coef>0) printf(“%d*x^%d“ q->coef q->expn);
else printf(“(%d)*x^%d“ q->coef q->expn);
}
/*-----------------------合并同类项------------------------------*/
Polyn* MergePolyn(Polyn *Pa) {
P p pBefore del;
pBefore = Pa->next;
p = pBefore->next;
while (p) {
if (p->expn == pBefore->expn) {
del = p;
pBefore->coef = pBefore->coef + p->coef;
p = p->next;
pBefore->next = p;
free(del);
}
else
pBefore = p;
p = p->next;
}
//PrintPolyn(Pa);
return Pa;
}
/*-----------------------创建节点--------------------------------*/
P CreatePolyn(Polyn *P)
{
Polyn *previous *current *head;
head = (Polyn *)malloc(sizeof(Polyn));
if (!head) exit(0);
head->coef = 0;
head->expn = -1;
head->next = NULL;
previous = head;
int coef expn;
printf(“
请输入系数和指数(输入为(00)时结束):
“);
scanf_s(“%d%d“ &coef &expn);
for (; (coef != 0) || (expn != 0);)
{
if (coef != 0) {
current = (Polyn *)malloc(sizeof(Polyn));
current->coef = coef;
current->expn = expn;
current->next = NULL;
previous->next = current;
previous = current;
current = previous->next;
scanf_s(“%d%d“ &coef &expn);
}
else scanf_s(“%d%d“ &coef &expn);
}
P = SelectSort(head);
P = MergePolyn(head);
PrintPolyn(P);
return P;
}
/*------------------------选择排序-------------------------------*/
Polyn* SelectSort(Polyn *head)
{
Polyn *pfirst = NULL; //有序链表表头指针
Polyn *ptail = NULL; //有序链表表尾指针
Polyn *pmin = NULL; //存储最小节点
Polyn *pminBefore = NULL; //存储最小节点的前驱节点
Polyn *p = NULL; //当前比较节点
//pfirst = NULL;
while (head != NULL) /*在链表中找键值最小的节点。*/
{
/* 注意:这里for语句就是体现选择排序思想的地方 */
for (p = head pmin = head; p->ne
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 34816 2018-04-06 17:22 Polyn.vsPolynv15.suo
文件 3604480 2018-04-06 17:20 Polyn.vsPolynv15ipch821bce403b2aa40d.ipch
文件 38535168 2018-04-01 08:55 Polyn.vsPolynv15ipchAutoPCH4ab7d8955a3ff253POLYN.ipch
文件 3080192 2018-04-01 11:21 Polyn.vsPolynv15ipchAutoPCH4f5c1cc49bbb10c7POLYN.ipch
文件 3080192 2018-04-06 09:26 Polyn.vsPolynv15ipchAutoPCH8e337353e6b4e169POLYN.ipch
文件 38535168 2018-04-01 10:40 Polyn.vsPolynv15ipchAutoPCHdbb77071d36785ddPOLYN.ipch
文件 39936 2018-04-06 17:22 PolynDebugPolyn.exe
文件 472572 2018-04-06 17:22 PolynDebugPolyn.ilk
文件 1241088 2018-04-06 17:22 PolynDebugPolyn.pdb
文件 89 2018-04-06 17:22 PolynPolynDebugPolyn.log
文件 36139 2018-04-06 17:22 PolynPolynDebugPolyn.obj
文件 31838 2018-04-01 15:30 PolynPolynDebugpolyn.obj.enc
文件 2883584 2018-03-28 23:39 PolynPolynDebugPolyn.pch
文件 1606 2018-04-06 17:22 PolynPolynDebugPolyn.tlogCL.command.1.tlog
文件 26868 2018-04-06 17:22 PolynPolynDebugPolyn.tlogCL.read.1.tlog
文件 1066 2018-04-06 17:22 PolynPolynDebugPolyn.tlogCL.write.1.tlog
文件 1312 2018-04-06 17:22 PolynPolynDebugPolyn.tlogli
文件 3094 2018-04-06 17:22 PolynPolynDebugPolyn.tlogli
文件 568 2018-04-06 17:22 PolynPolynDebugPolyn.tlogli
文件 212 2018-04-06 17:22 PolynPolynDebugPolyn.tlogPolyn.lastbuildstate
文件 5517 2018-03-28 23:39 PolynPolynDebugstdafx.obj
文件 257024 2018-04-06 17:22 PolynPolynDebugvc141.idb
文件 159744 2018-04-06 17:22 PolynPolynDebugvc141.pdb
文件 12274 2018-04-06 17:22 PolynPolynPolyn.cpp
文件 8207 2018-03-28 23:23 PolynPolynPolyn.vcxproj
文件 1250 2018-03-28 23:23 PolynPolynPolyn.vcxproj.filters
文件 165 2018-03-28 23:23 PolynPolynPolyn.vcxproj.user
文件 312 2018-03-28 23:23 PolynPolynstdafx.cpp
文件 366 2018-03-28 23:23 PolynPolynstdafx.h
文件 370 2018-03-28 23:23 PolynPolyn argetver.h
............此处省略18个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)