资源简介
数据结构实验课(全部题目+全部完整代码+全部实验报告)

代码片段和文件信息
#include
#include
//多项式中的一项的结构
typedef struct term{
double coef; // 定义系数
int expn; // 定义指数
struct term* next; // struct关键字可要可不要
}PolyNode *pPolyNode;
//创建一个保存多项式的链表,返回指向头结点的指针。多项式按指数降序排列
pPolyNode CreatePoly()
{
PolyNode *p*q*s*head=NULL;
double coef;
int expn;
head=(pPolyNode)malloc( sizeof(PolyNode) );
if(head==NULL)
{
printf(“内存分配失败!\n“);
return NULL;
}
head->coef =0.0;
head->expn =0;
head->next =NULL;
printf(“\n请输入多项式的系数和指数(输入0 0结束):\n“);
//scanf(“%lf%d“&coef&expn);
printf(“请输入系数:“);
scanf(“%lf“&coef);
printf(“请输入指数:“);
scanf(“%d“&expn);
while( (long)coef !=0 && expn !=0 )
{
s = (pPolyNode)malloc(sizeof(PolyNode));
s->coef = coef;
s->expn = expn;
q=head->next ;
p=head;
while(q && expn expn )
{
p=q;
q=q->next;
}
if(q== NULL || expn > q->expn )
{
p->next =s;
s->next =q;
}
else
{
q->coef+=coef;
}
printf(“请输入系数:“);
scanf(“%lf“&coef);
printf(“请输入指数:“);
scanf(“%d“&expn);
}
return head;
}
//将多项式逆置按升幂排列
pPolyNode Reverse(pPolyNode head)
{
PolyNode *p*q*t;
p=NULL;
q=head->next;
while( q!=NULL )
{
t=q->next;
q->next =p;
p=q;
q=t;
}
head->next =p;
return head;
}
//两个多项式相乘
pPolyNode multiply(pPolyNode ApPolyNode B)
{
PolyNode *pa*pb*pc*u*head;
int k maxExp;
double coef;
head=(pPolyNode)malloc( sizeof (PolyNode) );
if(head==NULL)
{
printf(“内存分配失败!\n“);
return NULL;
}
head->coef=0.0;
head->expn =0;
head->next =NULL;
if(A->next !=NULL && B->next != NULL)
{
maxExp=(A->next) ->expn +(B->next )->expn ;
}
else
{
return head;
}
pc=head;
B=Reverse (B);
for(k=maxExp; k>=0; k--)
{
pa = A->next ;
while(pa != NULL && pa->expn >k)
pa=pa->next ;
pb = B->next ;
while( pb != NULL && pa != NULL && (pa->expn + pb->expn) < k )
pb=pb->next;
coef=0.0;
while(pa != NULL && pb != NULL )
{
if( (pa->expn +pb->expn )==k )
{
coef+=pa->coef * pb->coef;
pa=pa->next;
pb=pb->next;
}
else
{
if(( pa->expn + pb->expn ) > k )
{
pa=pa->next;
}
else
{
pb=pb->next;
}
}
}
if( coef != 0.0 )
{
u=(pPolyNode)malloc(sizeof(PolyNode));
u->coef =coef;
u->expn =k;
u->next =pc->next;
pc->next=u;
pc=u;
}
}
B=Reverse(B);
return head;
}
void Printpoly(pPolyNode head)
{
PolyNode *p=head->next;
while(p)
{
printf(“%1.1f“p->coef);
if(p->expn )
printf(“*x^%d“p->expn );
if(p->next && p->next->coef >0)
printf(“+“);
p=p->next;
}
}
int main()
{
pPolyNode ABC;
A=CreatePoly();
printf(“A(x)=“);
Printpoly (A);
printf(“\n“);
B=CreatePoly();
printf(“B(x)=“);
Printpoly (B);
printf(“\n“);
C=multiply(AB);
printf(“C(x)=“);
Printpoly (C);
printf(“\n“);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-05-28 10:52 实验1:一元多项式相乘\
文件 3119 2019-05-28 10:50 实验1:一元多项式相乘\1.用链表实现一元多项式相乘.cpp
文件 134773 2019-05-28 10:50 实验1:一元多项式相乘\1.用链表实现一元多项式相乘.exe
目录 0 2019-05-28 10:56 实验2:迷宫问题\
目录 0 2019-05-28 10:51 实验2:迷宫问题\bin\
目录 0 2019-05-28 10:51 实验2:迷宫问题\bin\Debug\
文件 88804 2019-05-28 10:51 实验2:迷宫问题\bin\Debug\迷宫.exe
文件 1940 2019-05-28 10:50 实验2:迷宫问题\main(1表示通路).cpp
文件 2026596 2019-05-28 10:51 实验2:迷宫问题\main(1表示通路).exe
文件 2026576 2019-05-28 10:51 实验2:迷宫问题\main.exe
目录 0 2019-05-28 10:51 实验2:迷宫问题\obj\
目录 0 2019-05-28 10:51 实验2:迷宫问题\obj\Debug\
文件 86685 2019-05-28 10:51 实验2:迷宫问题\obj\Debug\main.o
文件 1068 2019-05-28 10:50 实验2:迷宫问题\迷宫.cbp
文件 164 2019-05-28 10:50 实验2:迷宫问题\迷宫.depend
文件 358 2019-05-28 10:50 实验2:迷宫问题\迷宫.layout
目录 0 2019-05-28 10:50 实验3:霍夫曼编码\
文件 197845 2019-05-28 10:50 实验3:霍夫曼编码\-361c723c8e5de72f.jpg
文件 226680 2019-05-28 10:50 实验3:霍夫曼编码\-7cd36c4ea8f99412.jpg
文件 176 2019-05-28 10:50 实验3:霍夫曼编码\BiTree .h
文件 6744 2019-05-28 10:50 实验3:霍夫曼编码\CodeFile.txt
文件 1627 2019-05-28 10:50 实验3:霍夫曼编码\CodePrin.txt
目录 0 2019-05-28 10:51 实验3:霍夫曼编码\Debug\
文件 21297 2019-05-28 10:51 实验3:霍夫曼编码\Debug\6.41.obj
文件 21212 2019-05-28 10:51 实验3:霍夫曼编码\Debug\6.42.obj
文件 33349 2019-05-28 10:51 实验3:霍夫曼编码\Debug\6.43.obj
文件 161712 2019-05-28 10:51 实验3:霍夫曼编码\Debug\6.47.obj
文件 161690 2019-05-28 10:51 实验3:霍夫曼编码\Debug\6.49.obj
文件 158607 2019-05-28 10:51 实验3:霍夫曼编码\Debug\6.65.obj
文件 32930 2019-05-28 10:51 实验3:霍夫曼编码\Debug\6.69.obj
文件 260626 2019-05-28 10:51 实验3:霍夫曼编码\Debug\fun_huffman.obj
............此处省略33个文件信息
相关资源
- VisualStudioUninstaller vs卸载工具
- 组态王驱动开发包3.0.0.7(中文)
- 多窗口后台鼠标连点器
- 使用选择性重传协议实现UDP可靠通信
- VC 获得文件属性 获取文件的创建时
- 读者写者问题(读者优先,写者优先
- 用VC 编写的仿QQ聊天室程序源代码
- 外点法程序
- 外罚函数程序
- qt-电子点菜系统
- 推箱子及人工智能寻路C 源代码
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- MUSIC算法c 实现
- C 餐厅叫号系统(QT平)
- 国际象棋c 完整版
-
ob
jectARX给Auto CAD加工具条 - 画图程序MFC/VC/VC CRectTracker 串行化
- MFC网络编程实例
- c 课程设计 职工信息管理系统
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
- 清华大学 c 郑莉 ppt课件
- c 程序判断离散数学中命题公式
- 多项式求和(数据结构C 版)
- vc 6.0开发的流程图编辑器
- VC 天空盒(skyBox)实现(附源代码)
- c MFC 画多边形
- 用C 实现的对网络上的ARP数据包进行
- Microsoft基本类库 (MFC)(C 库)
评论
共有 条评论