-
大小: 2.18MB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2023-09-09
- 語言: 其他
- 標簽: 數(shù)據(jù)結(jié)構(gòu)??
資源簡介
本案例實現(xiàn)了一下功能
1)首先判定多項式是否稀疏
2)分別采用順序和動態(tài)存儲結(jié)構(gòu)實現(xiàn);
3)結(jié)果M(x)中無重復(fù)階項和無零系數(shù)項;
4)要求輸出結(jié)果的升冪和降冪兩種排列情況

代碼片段和文件信息
//?KCSJ.cpp?:?定義控制臺應(yīng)用程序的入口點。
//
#include?“stdafx.h“
#include
#include
#include
//稀疏,指數(shù)
struct?data?{
????????int?xishu;
????????int?zhishu;
};
struct?node?{
????????data?dat;
????????node?*next;
};
//
int?cmp(const?void?*a?const?void?*b)
{
????return?((data*)a)->zhishu?-?((data*)b)->zhishu;
}
void?output(node?*head)
{
node?*p;
node?*shengxu;
shengxu?=?new?node;
shengxu->next?=?NULL;
printf(“升序排列\(zhòng)n“);
p?=?head->next;
while?(p)
{
if?(p->dat.xishu<0)
printf(“\b“);
if?(p->dat.xishu?!=?0)
{
if?(p->dat.xishu?==?1)
printf(“X^%d+“?p->dat.zhishu);
else?if?(p->dat.xishu?==?-1)
printf(“-X^%d+“?p->dat.zhishu);
else
printf(“%dX^%d+“?p->dat.xishu?p->dat.zhishu);
}
node?*q;
q?=?new?node;
q->dat.zhishu?=?p->dat.zhishu;
q->dat.xishu?=?p->dat.xishu;
q->next?=?shengxu->next;
shengxu->next?=?q;
p?=?p->next;
}
printf(“\b?\n“);
printf(“降序排列\(zhòng)n“);
p?=?shengxu->next;
while?(p)
{
if?(p->dat.xishu<0)
printf(“\b“);
if?(p->dat.xishu?!=?0)
{
if?(p->dat.xishu?==?1)
printf(“X^%d+“?p->dat.zhishu);
else?if?(p->dat.xishu?==?-1)
printf(“-X^%d+“?p->dat.zhishu);
else
printf(“%dX^%d+“?p->dat.xishu?p->dat.zhishu);
}
p?=?p->next;
}
printf(“\b?\n“);
}
//
int?main()
{
int?sum1?sum2;
data?*d1?*d2;
int?zhishu_max1?=?-1?zhishu_max2?=?-1;
int?i?j;
int?*biaodashi1?*biaodashi2;
node?*he?*cha;
node?*head1?*head2?*tail1?*tail2;
head1?=?(node?*)malloc(sizeof(node));
head2?=?(node?*)malloc(sizeof(node));
head1->next?=?NULL;
head2->next?=?NULL;
tail1?=?head1;
tail2?=?head2;
//輸入第一個表達式
printf(“請輸入第一個多項式的項數(shù):“);
scanf(“%d“?&sum1);
d1?=?(data*)malloc(sum1?*?sizeof(data));
printf(“請依次輸入每項多項式的系數(shù)和指數(shù):\n“);
for?(i?=?0;?i {
scanf(“%d%d“?&d1[i].xishu?&d1[i].zhishu);
}
//輸入第二個表達式
printf(“請輸入第二個多項式的項數(shù):“);
scanf(“%d“?&sum2);
d2?=?(data*)malloc(sum2?*?sizeof(data));
printf(“請依次輸入每項多項式的系數(shù)和指數(shù):\n“);
for?(i?=?0;?i {
scanf(“%d%d“?&d2[i].xishu?&d2[i].zhishu);
}
//排序
qsort(d1?sum1?sizeof(data)?cmp);
qsort(d2?sum2?sizeof(data)?cmp);
zhishu_max1?=?d1[sum1?-?1].zhishu;
zhishu_max2?=?d2[sum2?-?1].zhishu;
for?(i?=?0;?i<30;?i++)
printf(“==“);
printf(“\n“);
//輸出第一個表達式
printf(“第一個表達式為:\n“);
for?(i?=?0;?i {
if?(d1[i].xishu?!=?0)
{
if?(d1[i].xishu?==?1)
printf(“X^%d“?d1[i].zhishu);
else?if?(d1[i].xishu?==?-1)
printf(“-X^%d“?d1[i].zhishu);
else
printf(“%dX^%d“?d1[i].xishu?d1[i].zhishu);
}
if?(i printf(“+“);
}
printf(“\n“);
//判斷是否稀疏
if?(zhishu_max1?-?d1[0].zhishu?>?(sum1?*?sizeof(node)))
{
printf(“第一個表達式稀疏\n\n“);
for?(i?=?0;?i {
node?*p;
p?=?(node*)malloc(sizeof(node));
p->dat.zhishu?=
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-02-27?20:17??新建文件夾\
?????目錄???????????0??2017-02-27?20:17??新建文件夾\Debug\
?????文件???????45568??2017-02-27?18:42??新建文件夾\Debug\KCSJ.exe
?????文件??????351584??2017-02-27?18:42??新建文件夾\Debug\KCSJ.ilk
?????文件??????765952??2017-02-27?18:42??新建文件夾\Debug\KCSJ.pdb
?????目錄???????????0??2017-02-27?20:17??新建文件夾\ipch\
?????目錄???????????0??2017-02-20?19:28??新建文件夾\ipch\KCSJ-c442b12c\
?????文件?????3538944??2017-02-20?19:28??新建文件夾\ipch\KCSJ-c442b12c\KCSJ-27931937.ipch
?????目錄???????????0??2017-02-27?20:17??新建文件夾\KCSJ\
?????文件????????1294??2017-02-20?19:28??新建文件夾\KCSJ.sln
?????文件?????2514944??2017-02-27?20:16??新建文件夾\KCSJ.VC.db
?????目錄???????????0??2017-02-27?20:17??新建文件夾\KCSJ\Debug\
?????文件????????1607??2017-02-27?18:42??新建文件夾\KCSJ\Debug\KCSJ.log
?????文件???????24006??2017-02-27?18:42??新建文件夾\KCSJ\Debug\KCSJ.obj
?????文件?????3342336??2017-02-20?19:40??新建文件夾\KCSJ\Debug\KCSJ.pch
?????目錄???????????0??2017-02-27?20:17??新建文件夾\KCSJ\Debug\KCSJ.tlog\
?????文件????????1222??2017-02-27?18:42??新建文件夾\KCSJ\Debug\KCSJ.tlog\CL.command.1.tlog
?????文件????????5846??2017-02-27?18:42??新建文件夾\KCSJ\Debug\KCSJ.tlog\CL.read.1.tlog
?????文件?????????610??2017-02-27?18:42??新建文件夾\KCSJ\Debug\KCSJ.tlog\CL.write.1.tlog
?????文件?????????179??2017-02-27?18:42??新建文件夾\KCSJ\Debug\KCSJ.tlog\KCSJ.lastbuildstate
?????文件????????1040??2017-02-27?18:42??新建文件夾\KCSJ\Debug\KCSJ.tlog\li
?????文件????????2644??2017-02-27?18:42??新建文件夾\KCSJ\Debug\KCSJ.tlog\li
?????文件?????????316??2017-02-27?18:42??新建文件夾\KCSJ\Debug\KCSJ.tlog\li
?????文件???????11579??2017-02-20?19:40??新建文件夾\KCSJ\Debug\stdafx.obj
?????文件??????134144??2017-02-27?18:42??新建文件夾\KCSJ\Debug\vc140.idb
?????文件??????151552??2017-02-27?18:42??新建文件夾\KCSJ\Debug\vc140.pdb
?????文件????????7694??2017-02-27?18:42??新建文件夾\KCSJ\KCSJ.cpp
?????文件????????7898??2017-02-20?19:28??新建文件夾\KCSJ\KCSJ.vcxproj
?????文件????????1311??2017-02-20?19:28??新建文件夾\KCSJ\KCSJ.vcxproj.filters
?????文件????????1489??2017-02-20?19:28??新建文件夾\KCSJ\ReadMe.txt
?????文件?????????208??2017-02-20?19:28??新建文件夾\KCSJ\stdafx.cpp
............此處省略2個文件信息
評論
共有 條評論