资源描述:
《数据结构试验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.数据结构实验报告学院:数理与信息工程学院姓名:班级:学号:..一、线性表实验一:顺序表的删除(一)实验目的:1.掌握使用C++上机调试线性表的基本方法;2.掌握线性表的基本操作:插入、删除、查找等运算在顺序存储结构上的实现。(二)实验内容:实现一个线性表,对一个n不超过1000的线性表进行删除操作。(三)实验程序:#include#includetypedefstructLNode{intdata;structLNode*next;}LNode,*LinkList;intmain(){intn,m;
2、while(scanf("%d",&n)!=EOF){LinkListL=(LinkList)malloc(sizeof(LNode));L->next=NULL;..LinkListp=L,q;for(inti=1;i<=n;i++){q=(LinkList)malloc(sizeof(LNode));scanf("%d",&q->data);q->next=NULL;p->next=q;p=q;}scanf("%d",&m);for(intj=1;j<=m;j++){intnum;scanf("%d",&num);p=L;intk;i
3、nte=-1;if(num>=1&&num<=n){for(k=1;knext;}q=p->next;p->next=q->next;e=q->data;..n--;free(q);}printf("%d",e);}}}(四)运行结果:(五)实验总结:初次接触数据结构,心理有些期待,也有些畏惧。因为没学习过这种程序,心里总担心着能不能把它学好呢?当我们把该章节学完就尝试着做这个实验,说实话突然从理论到实验还是消化不了呢,后来,通过慢慢的揣摩和问老师和同学,慢慢的做完了。实验二:链表及其多项式相加(一)实验
4、目的:1.掌握使用C++上机调试线性表的基本方法;..2.掌握线性表的基本操作:插入、删除、查找等运算在链式存储结构上的实现。3.掌握基于链表的多项式相加的算法。(一)实验内容:通过有序对输入多项式的各个项,利用单链表存储该一元多项式,并建立的2个存储一元多项式的单链表,然后完成2个一元多项式的相加,并输出相加后的多项式。(二)实验程序:#include#include#include#includetypedefstructLnode{intcof;intexp
5、n;structLnode*next;}Lnode,*LinkList;voidCreatpolyn(LinkList&La,intm){inti;LinkListp,q;La=(LinkList)malloc(sizeof(Lnode));La->next=NULL;..p=La;for(i=1;i<=m;i++){q=(LinkList)malloc(sizeof(Lnode));q->next=NULL;scanf("%d%d",&q->cof,&q->expn);p->next=q;p=q;}}LinkListaddpolyn(L
6、inkList&A,LinkList&B){LinkListpa,pb,pc,Lb,p1,p2;pc=Lb=A;pa=A->next;pb=B->next;while(pa&&pb){if(pa->expn==pb->expn){pa->cof=pa->cof+pb->cof;if(pa->cof!=0){pc->next=pa;pc=pa;p2=pb;..pa=pa->next;pb=pb->next;free(p2);}else{p1=pa;p2=pb;pa=pa->next;pb=pb->next;free(p1);free(p2)
7、;}}elseif(pa->expn>pb->expn){pc->next=pb;pc=pb;pb=pb->next;}elseif(pb->expn>pa->expn){pc->next=pa;pc=pa;pa=pa->next;..}}pc->next=pa?pa:pb;free(B);return(Lb);}voidprintfpolyn(LinkList&p){while(p->next!=NULL){p=p->next;printf("%d%d",p->cof,p->expn);}}intmain(){intn1,n2;Li
8、nkListA,B,C;scanf("%d",&n1);Creatpolyn(A,n1);..scanf("%d",&n2);Creatpolyn(B,n2);C=addpolyn(A,B);