资源简介
完美的数据结构大作业之选。C语言+链表 实现。不用提前知道多项式项数,可以自动排序,可以合并同类项,可以进行加法、乘法运算。VS环境可运行,其他编程软件找到cpp复制粘贴即可
代码片段和文件信息
//#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(“\n“);
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(“\n请输入系数和指数(输入为(00)时结束):\n“);
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\.vs\Polyn\v15\.suo
文件 3604480 2018-04-06 17:20 Polyn\.vs\Polyn\v15\ipch\821bce403b2aa40d.ipch
文件 38535168 2018-04-01 08:55 Polyn\.vs\Polyn\v15\ipch\AutoPCH\4ab7d8955a3ff253\POLYN.ipch
文件 3080192 2018-04-01 11:21 Polyn\.vs\Polyn\v15\ipch\AutoPCH\4f5c1cc49bbb10c7\POLYN.ipch
文件 3080192 2018-04-06 09:26 Polyn\.vs\Polyn\v15\ipch\AutoPCH\8e337353e6b4e169\POLYN.ipch
文件 38535168 2018-04-01 10:40 Polyn\.vs\Polyn\v15\ipch\AutoPCH\dbb77071d36785dd\POLYN.ipch
文件 39936 2018-04-06 17:22 Polyn\Debug\Polyn.exe
文件 472572 2018-04-06 17:22 Polyn\Debug\Polyn.ilk
文件 1241088 2018-04-06 17:22 Polyn\Debug\Polyn.pdb
文件 89 2018-04-06 17:22 Polyn\Polyn\Debug\Polyn.log
文件 36139 2018-04-06 17:22 Polyn\Polyn\Debug\Polyn.obj
文件 31838 2018-04-01 15:30 Polyn\Polyn\Debug\polyn.obj.enc
文件 2883584 2018-03-28 23:39 Polyn\Polyn\Debug\Polyn.pch
文件 1606 2018-04-06 17:22 Polyn\Polyn\Debug\Polyn.tlog\CL.command.1.tlog
文件 26868 2018-04-06 17:22 Polyn\Polyn\Debug\Polyn.tlog\CL.read.1.tlog
文件 1066 2018-04-06 17:22 Polyn\Polyn\Debug\Polyn.tlog\CL.write.1.tlog
文件 1312 2018-04-06 17:22 Polyn\Polyn\Debug\Polyn.tlog\li
文件 3094 2018-04-06 17:22 Polyn\Polyn\Debug\Polyn.tlog\li
文件 568 2018-04-06 17:22 Polyn\Polyn\Debug\Polyn.tlog\li
文件 212 2018-04-06 17:22 Polyn\Polyn\Debug\Polyn.tlog\Polyn.lastbuildstate
文件 5517 2018-03-28 23:39 Polyn\Polyn\Debug\stdafx.obj
文件 257024 2018-04-06 17:22 Polyn\Polyn\Debug\vc141.idb
文件 159744 2018-04-06 17:22 Polyn\Polyn\Debug\vc141.pdb
文件 12274 2018-04-06 17:22 Polyn\Polyn\Polyn.cpp
文件 8207 2018-03-28 23:23 Polyn\Polyn\Polyn.vcxproj
文件 1250 2018-03-28 23:23 Polyn\Polyn\Polyn.vcxproj.filters
文件 165 2018-03-28 23:23 Polyn\Polyn\Polyn.vcxproj.user
文件 312 2018-03-28 23:23 Polyn\Polyn\stdafx.cpp
文件 366 2018-03-28 23:23 Polyn\Polyn\stdafx.h
文件 370 2018-03-28 23:23 Polyn\Polyn\targetver.h
............此处省略18个文件信息
相关资源
- C++开发web服务框架之HTTP Web框架的设计
- MFC通过OpenCV 显示到Picture control
- Halcon+MFC实现相机畸变校正与手眼九点
- 基于目标距离的S型速度曲线规划
- dll封装MFC对话框资源
- 使用c++开发的人脸识别 demo
- Visual C++实现MPEG/JPEG编解码技术代码集
- C语言的圣经 - K&R的C程序设计语言第
- 计算路口通过车辆的 OPENCV C++
- Centos 6.7 gcc和gcc-c++的离线安装包
- Visual C++ +SQL Server数据库应用完全解析
- UniDac 8.0.1〖D7200710.110.210.3〗一键安装
- 吃豆子游戏 C++
- C++数据结构实现池塘夜降彩色雨附带
- C语言项目开发全程实录源码
- Hands-On GUI Programming with C++ and Qt5
- MFC滚动字幕源码
- Directshow实现的虚拟摄像头win10+vs2013
- C++ MFC 吹泡泡 源代码
- C++使用protobuf 作为网络消息协议
- 基于遗传算法的MFC矩形排样UI
- MFC IP地址 网关 MAC地址获取
- Microsoft Visual C++ 2013 runtime 64/32 运行库
- VS2008下MFC做的模拟时钟,还带数字显
- libstdc++.so.6.0.23
- Introduction to Design Patterns in C++ with Qt
- 游戏编程代码\\游戏编程学习笔记之九
- stm8S从入门到精通
- 《c++程序设计》谭浩强完整版
- C++ Primer第五版 源代码
评论
共有 条评论