资源描述:
《数据结构实验试做记录》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数据结构实验试做记录实验一多项式相加一、实现代码如下:#include#includestructpoly{intcocf;intexp;};typedefstructpolyDataType;typedefstructnode{DataTypedata;structnode*next;}LNode,*LinkList;voidCreateList(LinkList&L){intc,e;LinkListr.s;r=L;cin»c»e;whilc(c!=0){s=(LinkList)malloc(size
2、of(LNode));(s->data).coef=c;(s->data).exp=e;r->next=s;r=s;cin>>c»e;}r->next=NULL;}voidPrintList(LinkListL){LinkListp;p=L->ncxt;while(p){cout«,,(,'«(p->data).coef«',;,«(p->data).exp«,f),f;if(p->ncxt)cout«n->,r;p=p・>next;LinkListPolyAdd(LinkList匕LinkListQ){LinkListR,「p,q,s;R=r=
3、P;p=P->next;q=Q->next;while(p&&q){if((p->data).exp<(q->data).exp){r->next=p;r=r->next;p=p->ncxt;}elseif((p->data).exp>(q->data).exp){r->next=q;r=r->ncxt;q=q->next;}else{intsum;sum=(p->data)xoef+(q->data).coef;if(sum==O){s=p;p=p->next;free(s);s=q;q=q->next;free(s);}else{(p->da
4、ta).coef=sum;r->next=p;r=r->ncxt;p=p->next;s=q;q=q->next;frcc(s);if(p)r->ncxt=p;if(q)r->next=q;returnR;}voidmain(){LinkListP,Q,R;P=(LinkList)malloc(sizeof(LNode));P->next=NULL;cout«n请输入多项式1的值:“vvendl;CreateList(P);cout«"多项式1的表达式为:"vvendl;PrintList(P);cout«endl;Q=(LinkList)mal
5、loc(sizeof(LNode));Q->next=NULL;cout«ni§输入多项式2的值:“vvendl;CreateList(Q);cout«n多项式2的表达式为:“vvendl;PrintList(Q);cout«endl;R=PolyAdd(P,Q);cout«H多项式的和为:“;PrintList(R);二、测试结果实验二表达式求值一、实现代码如下:#include#include#include#defineMAXSIZE100〃定义操作数栈及其相应操作函数实现ty
6、pedefstructStack1{intdata[MAXSIZE];inttop;JSqStackl;charchars[7]=r+T・T*畀charprior⑺⑺二'’AAA〉','〉',、;voidInitStack(SqStackl*&s){if(!(s=(SqStack1*)malloc(sizeof(SqStack1))))return;s->top=-l;}boolIsEmptyStack(SqStackls){returns.top==-l?l:0;}voidPush(SqStackl*&s,inte){s->top++;s->d
7、ata[s->top]=e;voidPop(SqStack1*&s,int&e){e=s->data[s->top];s->top~;}intGetTop(SqStack1*s){inte;e=s->data[s->top];returne;}〃定义操作符栈及其相应操作函数实现typedefstructStack2{chardata[MAXSIZE];inttop;}SqStack2;voidInitStack(SqStack2*&s){if(!(s=(SqStack2*)malloc(sizcof(SqStack2))))return;s->t
8、op=-l;boolIsEmptyStack(SqStack2s){returns.top==-l?1:0;}voidPush(SqSt