欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    合肥工业大学数据结构试验一实验报告.doc

    • 资源ID:35239747       资源大小:91KB        全文页数:17页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    合肥工业大学数据结构试验一实验报告.doc

    计算机与信息学院数据结构实验报告专 业 班 级 学生姓名及学号 课程教学班号 任 课 教 师 实验指导教师 实验地点 2015 2016 学年第 2 学期说 明实验报告是关于实验教学内容、过程及效果的记录和总结,因此,应注意以下事项和要求:1每个实验单元在4页的篇幅内完成一份报告。“实验单元”指按照实验指导书规定的实验内容。若篇幅不够,可另附纸。2、各实验的预习部分的内容是进入实验室做实验的必要条件,请按要求做好预习。3实验报告要求:书写工整规范,语言表达清楚,数据和程序真实。理论联系实际,认真分析实验中出现的问题与现象,总结经验。4参加实验的每位同学应独立完成实验报告的撰写,其中程序或相关的设计图纸也可以采用打印等方式粘贴到报告中。严禁抄袭或拷贝,否则,一经查实,按作弊论取,并取消理论课考试资格。5实验报告作为评定实验成绩的依据。 实验序号及名称:实验一 单链表实验 实验时间 2016年 5 月 预习内容一、实验目的和要求(1)理解线性表的链式存储结构。(2)熟练掌握动态链表结构及有关算法的设计。(3)根据具体问题的需要,设计出合理的表示数据的链表结构,设计相关算法。二、实验任务说明1:本次实验中的链表结构均为带头结点的单链表。说明2:为使实验程序简洁直观,下面的部分实验程序中将所需要的函数以调用库函数的形式给出,并假设将库函数放在程序文件“linklist.h”中,同时假设该库函数文件中定义了链表结构中的指针类型为link,结点类型为node,并定义了部分常用运算。 例如构建链表、以某种方式显示链表、从文件中读入一个链表、跟踪访问链表结点等。 各运算的名称较为直观,并有相应的注释,因而易于理解和实现。三、实验准备方案,包括以下内容:(硬件类实验:实验原理、实验线路、设计方案等)(软件类实验:所采用的核心方法、框架或流程图及程序清单)实验准备方案: 构建库函数:定义了链表结构中的指针类型为link,结点类型为node,并定义了部分常用运算,如构建链表,显示链表,读取链表,访问链表等;流程: 略 实验内容一、实验用仪器、设备:个人计算机C-free5.0二、实验内容与步骤(过程及数据记录):<1>求链表中第i个结点的指针(函数),若不存在,则返回NULL。实验测试数据基本要求:第一组数据:链表长度n10,i分别为5,n,0,n+1,n+2第二组数据:链表长度n=0,i分别为0,2node* list:address(int i)node *p = head->next;int n = 1;while (n != i&&p != NULL)p = p->next;n+;if (p!=NULL) return p;else return NULL;第一组数据第二组数据<2>在第i个结点前插入值为x的结点。实验测试数据基本要求:第一组数据:链表长度n10,x=100, i分别为5,n,n+1,0,1,n+2第二组数据:链表长度n=0,x=100,i=5errorcode list:insert(const int i, const int x)node *p;p = head;int n = 1;while (n != i&&p != NULL)p = p->next;n+;if (i<1 | i>length() + 1) return rangeerror;node *s = new node;s->data = x;s->next = p->next;p->next = s;count+;return success;<3>删除链表中第i个元素结点。实验测试数据基本要求:第一组数据:链表长度n10,i分别为5,n,1,n+1,0 第二组数据:链表长度n=0, i=5errorcode list:delete_ele(const int i)node *p;p = head;int n = 1;while (n != i&&p != NULL)p = p->next;n+;if (i < 1 | i > count) return rangeerror;node *u;u = p->next;p->next = u->next;count-;delete u;return success;<4>在一个递增有序的链表L中插入一个值为x的元素,并保持其递增有序特性。实验测试数据基本要求:链表元素为 (10,20,30,40,50,60,70,80,90,100),x分别为25,85,110和8errorcode list:orderinsert(int x)node *p = head;int n = 1;while (p->next != NULL)if (p->next->data < x) p = p->next;else break;node *u = new node;u->data = x;u->next = p->next;p->next = u;count+;return success;<5>将单链表中的奇数项和偶数项结点分解开,并分别连成一个带头结点的单链表,然后再将这两个新链表同时输出在屏幕上,并保留原链表的显示结果,以便对照求解结果。实验测试数据基本要求:第一组数据:链表元素为 (1,2,3,4,5,6,7,8,9,10,20,30,40,50,60)第二组数据:链表元素为 (10,20,30,40,50,60,70,80,90,100)void separate(list&A,list&B,list&C) node*LA;node*LB;node*p;node*q;node*u;node*s; LA=A.get_head(); LB=B.get_head(); q=LA;p=LA->next;s=LB; if(p->data%2=0) u=p;p=p->next;q->next=p; s->next=u; s=s->next; else p=p->next;q=q->next; <6>求两个递增有序链表L1和L2中的公共元素,并以同样方式连接成链表L3。实验测试数据基本要求: 第一组第一个链表元素为 (1,3,6,10,15,16,17,18,19,20)第二个链表元素为 (1,2,3,4,5,6,7,8,9,10,18,20,30)第二组第一个链表元素为 (1,3,6,10,15,16,17,18,19,20)第二个链表元素为 (2,4,5,7,8,9,12,22)第三组第一个链表元素为 ()第二个链表元素为 (1,2,3,4,5,6,7,8,9,10)bingji(list A,list B,list&C) node*LA; node*LB; node*LC; node*a;node*b; LC=C.get_head(); LA=A.get_head(); LB=B.get_head(); a=LA->next;b=LB->next; while(a!=NULL&&b!=NULL) if(a->data<b->data) a=a->next; else if(a->data>b->data) b=b->next; else node*c=new node; c->data=a->data;LC->next=c;LC=c;C.count+; a=a->next;b=b->next; LC->next=NULL; CPP文件附加:#include <iostream.h>#include<math.h> enum error_codesuccess,arrange_error; typedef struct nodeint data;node*next;node;class listpublic: list(); int length()const; list(); node* get_element(int locate)const; node*locate(const int x)const; error_code charu(const int i); error_code insert(const int locate,const int i); error_code delete_element(const int i); node* get_head()return head; void separate(list&A,list&B); int bingji(list A,list B,list&C); void create_R();void list:show(); private: int count; node*head ;node*rear ;list:list() head=new node; head->next=NULL; count=0; int list:length() const node*p=head->next; int count=0; while(p!=NULL) count+; p=p->next; return count;void list:create_R()int x;cout<<"请输入链表中的数值,按-1后结束创建"<<endl; cin>>x;node*rear=head;while(x!=-1)count+;node*s=new node;s->data=x;rear->next=s;rear=s;rear->next=NULL;cin>>x; node * list :get_element(int locate)constif(count=0) return 0; elseif(locate<=0|locate>=count)return 0;elsenode*p=head; int k=0;while(p!=NULL&&k<locate)p=p->next;k+;return p; void list:show() node*p=head; while(p!=NULL) cout<<p->data<<"t" p=p->next; error_code list:insert(const int locate,const int i) if(count=0) node*s=new node; s->data=i; s->next=NULL; head->next=s; rear=s; count=1; return success; elseif (locate<1|locate>count+1) return arrange_error; else node*p=head;int j=0; while(j!=locate-1&&p!=NULL) p=p->next;j+; node*s=new node; s->data=i; s->next=p->next; p->next=s; count+;return success; error_code list:charu(const int i) node*p=head;while(p!=NULL&&p->next!=NULL) if(p->data<=i&&i<=p->next->data) node*s=new node; s->data=i; s->next=p->next; p->next=s; count+; else p=p->next;if(p->next=NULL) node*s=new node; s->data=i; s->next=NULL; p->next=s; count+; return success; error_code list:delete_element(const int i) node *p=head; int j=0; while(j!=i-1&&p!=NULL) p=p->next;j+; if(i<1|i>count) return arrange_error; node*u=new node; u=p->next; p->next=u->next; delete u; count-; return success; void separate(list&A,list&B) node*LA;node*LB;node*p;node*q;node*u;node*s; LA=A.get_head(); LB=B.get_head(); q=LA;p=LA->next;s=LB; while(p!=NULL) if(p->data%2=0) u=p;p=p->next;q->next=p; s->next=u; s=s->next; else p=p->next;q=q->next; void separate(list&A,list&B,list&C) node*LA;node*LB;node*p;node*q;node*u;node*s; LA=A.get_head(); LB=B.get_head(); q=LA;p=LA->next;s=LB; if(p->data%2=0) u=p;p=p->next;q->next=p; s->next=u; s=s->next; else p=p->next;q=q->next; int list: bingji(list A,list B,list&C) node*LA; node*LB; node*LC; node*a;node*b; LC=C.get_head(); LA=A.get_head(); LB=B.get_head(); a=LA->next;b=LB->next; while(a!=NULL&&b!=NULL) if(a->data<b->data) a=a->next; else if(a->data>b->data) b=b->next; else node*c=new node; c->data=a->data;LC->next=c;LC=c;C.count+; a=a->next;b=b->next; LC->next=NULL; return success;int main()int choice;int i;list A; list B;list C;do/显示主菜单 cout<<" n" cout<<" n" cout<<" 主菜单 n" cout<<" n" cout<<" *"<<endl; cout<<" n"cout<<" 1-创建链表 2-求第i个节点指针 n" cout<<" n"cout<<" 3-在第i个节点前插入一个数 4-删除链表中的第i个节点n"cout<<" n"cout<<" 5-分离链表 6-求公共元素n"cout<<" n"cout<<" 7-插入一个数 8-退出n"cout<<" n"cout<<" *"<<endl;cout<<"Enter choice:"cin>>choice;switch(choice)case 1:A.create_R();B.create_R();A.length();B.length();break;case 2:int k;cout<<"qing shu ru kn"cin>>k;if(A.get_element(k)=NULL)cout<<NULL<<endl;elsecout<<A.get_element(k)->data<<endl;break;case 3: A.length(); int a,b; cout<<"请输入a,bn" cin>>a>>b; A.insert(a,b); A.show(); break;case 4:A.length();int i;cout<<"请输入一个值n"cin>>i;if(i=0|i>A.length()cout<<"NULLn"else A.delete_element(i); A.show(); break; case 5: A.show(); separate(A,B); A.show(); B.show();case 6:A.show(); B.show(); A.bingji(A,B,C); C.show();case 7: int i; cout<<"请输入一个数n" cin>>i;A.charu(i); A.show(); case 8:cout<<"结束运行"<<endl;break;while(choice!=7);return 0;三、实验结果分析、思考题解答四、感想、体会、建议实验成绩指导教师签名:年 月 日

    注意事项

    本文(合肥工业大学数据结构试验一实验报告.doc)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开