欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构线性表实验报告五篇.docx

    • 资源ID:1081358       资源大小:33.63KB        全文页数:15页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    数据结构线性表实验报告五篇.docx

    数据结构线性表实验报告五篇第一篇:数据结构线性表实验报告实验报告课程名:数据结构实验名:线性表及其操作姓名:班级:学号:撰写时间:一实验目的与要求1.掌握线性表的实现2.掌握线性表的根本操作的实现二实验内容分别完成线性表的顺序表示及链式表示在两种表示上,分别实现一些线性表的操作,至少应该包括-在第i个位置插入一个元素-删除第i个元素-返回线性表长-返回第i个元素的值三实验结果与分析includeinclude/线性表链式表示structV声明一个结构体类型structVintvalue;structV*next;定义结构体变量;VoidPrintLink(structV*p)定义一个结构体指针While(P!=NULL)只要指针指向的变量不为NULL;就会一直循环链表指向下一个结构体(printf(u%dl,1,(*p).value);p=(*p).next;指针指向下一个结构体Printf("n);voidLink()structV*head;head=(structV*)malloc(sizeof(structV);开辟一个长度为size的内存(*head).value=-100;表头为-100(*head).next=NULL;Printf("-线性表链式表示n);inti,n=10;structV*p=head;printf("10个数据:n);for(i=0;i(*p).next=(structV*)malloc(sizeof(structV);p=(*p).next;(*p).value=2*i;(*p).next=NULL;)PrintLink(head);调用PrimLink函数Printf("删除第四个数据:n");intk=4;p=head;for(i=l;ip=(*p).next;)structV*temp=(*p).next;/k表示插入和删除的位置(*p).next=(*temp).next;free(temp);PrintLink(head);printf(插入第十个数据:);k=10;p=head;for(i=l;ip=(*p).next;)temp=(*p).next;(*p).next=(structV*)malloc(sizeof(structV);(*(*p).next).value=-99;(*(*p).next).next=temp;PrintLink(head);/线性表顺序表示voidseql()inti,n=10,k=4;inta10;/输出数组元素Printf(线性表顺序表示n");for(i=0;iai=i;printf(数组元素为:n);for(i=0;iPrintf(3d,ai);Printf(n);插入一个数组元素intm=n+lJ=L2;插入元素12intb20;for(i=0;iif(i(bi=ai;)elseif(i=k)bi=j;)elsebi=ai-l)Primf(输出插入一个元素的数组:);for(i=0;i(if(ici=aiJelseci=ai+l)Printf(输出删除一个元素的数组:n");for(i=0;iPrintf(数组元素为:n);for(i=l;i<=a0;i+)ai=i;for(i=0;i<2*a0;i+)printf(,%d",ai);printf("n);/在k位置插入一个元素for(i=a0;i>=k;i-)ai+l=ai;ak=-100;+a0;for(i=0;i<2*a0;i+)printf(,%dl",ai);printf(1,r");/-在kfor(i=0;i>k;i+)ai=ai+l;ak=-l;aO=n;a0;for(i=0;i<2*a0;i+)printf(',%d"zai);printf(,v");intmain(intargczchar*argv)seql();seq2();Link();return0;图1:实验结果截图实验分析:已在程序中按规定格式标注。第二篇:福州大学数据结构实验报告线性表数据结构原理实验报告学号:姓名:线性表一、问题描述L实现ADT表2.设表的Reverse运算将表中元素的次序反转。扩充用数组实现表的结构List,增加函数Reversed),将表L中元素的次序反转,并要求就地实现Reverse运算。二、算法描述从i=0开始,将表中第N个元素与N-i-1个元素调换即可三、核心代码voidReverseList(ListL)1.istitemtmp;inti;for(i=0;in/2;i+)tmp=L->tablei;L->tablei=L->tableL->n-l-i;L->tableL->n-l-i=tmp;四、运行结果第三篇:数据结构一实验报告线性表的根本操作(一)单链表的根本操作#includeusingnamespacestd;#definetrue1#definefalse0#defineok1#defineerror0#defineoverflow-2typedefintStatusjtypedefintEIemTypejtypedefstructLNode存储结构EIemTypedata;structLNode*next;LNode,*LinkList;voidCreateList(LinkList&LJntn)尾插法创立单链表LinkListp;L=newLNode;L->next=NULL;/建立一个带头结点的单链表1.inkListq=L;使q指向表尾StatusGetElem(LinkListLJntizElemType&e)取第i个元素LinkListp=L->next;intj=ljwhile(p8i8y7e%÷yfor(iti=l;i<=n;i+)p=newLNode;cin>>p->data;p->next=NULL;q->next=p;q=p;if(!pj>i)returnerror;第i个元素不存在e=p->data;returnok;StatusLinkInsert(LinkList&LJnti,日emTypee)/插入LinkListp=L;intj=O;while(p&&jnext;+j;寻找第i-1个结点if(!pj>i-l)returnerrori小于1或者大于表长加1LinkLists=newLNode;/生成新结点S->data=e;s->next=p->nextL中p->next=s;returnok;StatusListDelete(LinkList&L,intizElemType&e)删除LinkListP=LjLinkListq;intj=0;While(P->next&&jp=p->next;+j;if(!(p->next)Hj>i-l)returnerror;删除不合理q=p->next;p->next=q->next;删除并释放结点e=q->data;delete(q);returnok;voidMergeList(LinkListSiLazLinkList&Lb,LinkList&Lc)合并两个顺序链表1.inkListpa,pc,pb;Pa=La->next;Pb=Lb->next;LC=PC=La;While(Pa&&pb)if(pa->data<=pb->data)pc->next=pa;pc=pa;pa=pa->next;elsepc->next=pb;pc=pb;pb=pb->next;)pc->next=pa?pa:pb;delete(Lb);voidshow(LinkListL)LinkListp;p=L->next;while(p)cout<data<p=p->next;cout<next;while(p)+i;显示表长3p=p->next;)returni;void×iugai(LinkListL)修改intij=l;EIemTyPek;ElemTypee,m;LinkLiStp=L->next;cout<>i;GetElem(L,i,e);CoUt<>k;WhiIe(P+j;m=p->data;p->data=k;cout<>a;cout<>b;cout<>select;switch(select)casel:cout<cin>>x;cout<CreateList(Iistx)Jbreakjcase2:cout<show(list);break;case3:ints;cout<>xjwhile(×<Ox>Length(listzs)coutox;GetEIem(IiSLx,y);CoUt<>x;WhiIe(X<Ox>Length(list,s)coutox;cout<>y;LinkInsert(list,xry);cout<>x;while(x<O|x>Length(list,s)cout<>x;cout<ListDelete(listzxzy);break;case8:hebing();break;case9:exit(O);break;default:cout<四、测试结果D顺序表的测试结果82)单链表的测试结果五、心得体会当听到老师说写数据结构实验报告时,我有点惊讶,才学了不到一个月,就要写实验报告。记得去年学习C+时,学了一个学期,程序设计用了三周,才完成的,这个实验报告居然要一周完成两个设计,觉得很难。但是现在一周过去了,我也写完了,自我感觉良好。通过这次写实验报告,我深切的理解了这门课的本质。刚开始学这门课时,当时还不清楚这门课程的目的,现在,我真正的理解了:数据结构像是身体的骨骼,而C+是填充这骨骼的肉体,二者相结合才能使整个程序更加完整,健全。数据结构是个框架,模型,抽象数据类型中列举了各种操作,而所用的C+语言,将各种操作描述出来构成算法。数据结构+算法=程序设计。在这次设计的过程中,我还遇到了,很多的问题。顺序表是按顺序存储的,用了一维数组来存储,又结合C+的程序设计,我又用了类,但是,在执行时出现了问题。后来问同学,指出我的错误,不过获益不少。我又重新整理思路,把顺序表的根本操作写好了。虽然走了很多弯路,但是让我认识到,一定要创新,大胆,不能按照旧的思路去干新的事情。单链表写起来简单多了,这个很快就搞定了。但是细节上出了问题。比方说,有些变量的重复定义,有些变量又没有定义,在调用函数,就直接复制过来,没有改参数通过修改,我深刻理解到:细节决定成败,在以后,不管做任何事情都要认真,细心。这次的实验报告,让我受益匪浅,不仅有知识方面的,还有生活和精神上的。总之,我会继续我的兴趣编程,相信在编程的过程中,能不断的提高自己。第四篇:数据结构线性表试验报告线性表上机实习1.实验目的(1)熟悉将算法转换为程序代码的过程。2了解顺序表的逻辑结构特性,熟练掌握顺序表存储结构的C语言描述方法。3熟练掌握顺序表的根本运算:

    注意事项

    本文(数据结构线性表实验报告五篇.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

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

    收起
    展开