用链式实现一元多项式(poly)的加法运算。
系数(float p),指数(int e),指针(*next)
算法思路:同时扫描多项式p1、p2的各项分量,比较他们的指数值,如果相同,则对此指数相对应的系数进行合并求和,将系数和写入p1当前的分量当中,继续扫描p1、p2的下一个分量;否则p1和p2的当前分量的指数值不等,分下面两种情况分析:
1)如果p1当前分量小如p2当前分量的值,则继续扫描p1的下一项。
2)如果p1当前分量大如p2当前分量的值,则p2插入p1当前分量的前面。
#include ""
#include ""
#include ""
typedef struct node
return p;
void add(poly p1,poly p2)
while(c2)
poly t;
if(!(t=(poly)malloc(sizeof(poly)))无法申请。
printf("内存不够");
t->p=c2->p;
t->e=c2->e;
t->next=null;
p->next=t;
p=p->next;
c2=c2->next; }
void main()
poly p1,p2;
float a1[100],a2[100];
int b1[100],b2[100];
int a,b,i;
printf("输入p1的长度:");
scanf("%d",&a);
printf("输入p1的p和e的值:");
for(i=0;i
printf("输入p2的长度:");
scanf("%d",&b);
printf("输入p2的p和e的值:");
for(i=0;i
p1=creat();
p2=creat();p1,p2等于一个空链表。
created(p1,a1,b1,a);
created(p2,a2,b2,b);/给p1,p2赋值。
add(p1,p2);/p1,p2进行运算。
算法思路:使用一个操作数栈,当从左往右扫描表达式时,每遇到一个操作数就送入栈中保存,每遇到一个运算符就从栈中取出两个操作数进行当前的计算,然后把结果再入栈,直到整个表达式结束,这事送入栈顶的值就是结果。
以#为结束符
#include ""
#include ""
#define max 100
typedef double datatype;
typedef struct node
int pop(pseqstack s,datatype *x)//出栈。
if(empty(s))
return 0;
elseint get(pseqstack s,datatype *x)//取栈顶。
if(empty(s))
return (0);
elsex=s->data[s->top];
return (1);
int isnum(char c)//判断字符是否为操作数。
if(c>='0'&&c>='9')
return 1;
elsereturn 0;
double postfix(char a)
pseqstack s;
double r,x,y,z;
char ch;
ch=*a++;
s=init();
while(ch!='#
push(s,z);
ch=*a++;
get(s,&r);/取栈顶。
return r;
void main()
double d;
char p=1','2','8','54','2
printf("1+2*(8-5)-4/2=5");
d=postfix(p);
printf("%f",d);
数据结构课程设计 2报告
学号 2008302605 姓名 张坤实验日期 12.28 高维数据检索方法的实现及评价。一 需求分析 1.本程序以用户和计算机的对话方式执行,即在计算机终端上显示 提示信息 之后,由用户在键盘上输入相应的命令,然后计算机根据用户输入的命令执行相应的操作 2.程序功能 在给定特征数据集a中寻找待处理...
数据结构课程设计报告 2
数学与统计学院。课程设计报告。课程 算法与数据结构 题目 xxxxxx 班级xxx班 姓名xxxx 学号xxxxxxxx 起迄日期 2018.03.11 03.14 指导教师 xxx 成绩。一 设计要求。1.问题描述。本系统可实现图书借阅管理的一系列活动。例如,对读者信息的管理 图书的借阅和归还 图...
数据结构课程设计
课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...