欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    计算机软件基础实验报告2.doc

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

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

    计算机软件基础实验报告2.doc

    1、北京联合大学实验报告课程(项目)名称: 计算机软件技术基础(实验2) 学 院: 自动化学院 专 业:电气工程与自动化 班 级: 0910030101 学 号: 2009100301126 姓 名: 林驷淇 成 绩: 2011年4月24日一、任务与目的1实验目的(1)掌握链表的概念。(2)熟练掌握线性表的链式存储结构。(3)熟练掌握线性表在链式存储结构上的运算。2实验内容(1)编写算法,根据用户输入的整数创建一个带头结点的单链表,-1作为输入数据的结束符。测试要求:建立空链表、非空链表的情况下测试程序运行情况。 (2)编写算法,在带有头结点的单链表中查找序号为i的结点和值为x的结点并输出。测试要

    2、求:在空链表、i与x在链表头、i与x在链表尾、i与x在链表中间、i与x在链表中不存在的情况下测试程序运行情况。 (3)己知单链表中的元素非递减有序排列,编写算法删除单链表中值相同的多余的元素。测试要求:在空链表、有1组相同元素、有2组连续相同元素、有2组以上不连续相同元素的情况下测试程序运行情况。(4)已知单链表中的数据元素递增有序,编写算法,给定的两个数据Min和Max,删除表中值在min与max之间的结点。测试要求:在空链表、max小于链表第1个元素值、min大于链表最后1个元素值、min与max在链表中间的情况下测试程序运行情况。二、原理(条件)Visual C+6.0 三、内容与步骤(

    3、1)编写算法,根据用户输入的整数创建一个带头结点的单链表,-1作为输入数据的结束符。测试要求:建立空链表、非空链表的情况下测试程序运行情况。测试数据为:10, 9, 8, 7, 6, 5, 4, 3, 2, 1主函数内的代码:linklist *createlist()int t;linklist *head,*s,*r; /s为新建结点,r为尾结点head=(linklist*)malloc(sizeof(linklist);/开辟空间,建立一个头结点r=head;printf(请输入数字序列,产生单链表,以-1结束。n);scanf(%d,&t);while(t!=-1)s=(linkli

    4、st*)malloc(sizeof(linklist);s-data=t;r-next=s;r=s;scanf(%d,&t);r-next=NULL;return head;运行结果:(2)编写算法,在带有头结点的单链表中查找序号为i的结点和值为x的结点并输出。测试要求:在空链表、i与x在链表头、i与x在链表尾、i与x在链表中间、i与x在链表中不存在的情况下测试程序运行情况。主函数内的代码:void findi(linklist *head) /查找结点为i的值linklist *p,*q;int i=0,j=0;printf(输入要查找的结点:n);scanf(%d,&i);if(i=1)q

    5、=head-next;else p=head-next;j=1;while(p!=NULL)p=p-next;j+;if(i=j) q=p;break;if(p=NULL)printf(超出范围,不存在);else printf(查找的元素为:); printf(%dn,q-data);测试数据:查找结点为3的值运行结果:void findx(linklist *head) /查找值为x的结点linklist *p;int ch;int j=0;printf(请输入要查找的数值:n);scanf(%d,&ch);p=head-next;j=1;while(p!=NULL&p-data!=ch)

    6、 p=p-next;j+;if(p=NULL)printf(你所输入的值不存在!n);elseprintf(第%d个元素为%dn,j,p-data);测试数据:查找值为3的值运行结果:(3)己知单链表中的元素非递减有序排列,编写算法删除单链表中值相同的多余的元素。测试要求:在空链表、有1组相同元素、有2组连续相同元素、有2组以上不连续相同元素的情况下测试程序运行情况。主函数内的代码:linklist *deld(linklist *head)/删除连续相同元素 linklist *p,*q; p=head-next;printf(删除后链表为:n); if(p=NULL) return hea

    7、d; else while(p-next!=NULL) q=p-next; if(p-data=q-data) p-next=q-next; free(q); else p=p-next; q=q-next; return head;测试数据:12 45 78 78 96 10 11 11 25 26 28 28 35 36 48 5 5 6 8 9 10 11 12 12 35 38 65 65 78 89运行结果:(4)已知单链表中的数据元素递增有序,编写算法,给定的两个数据Min和Max,删除表中值在min与max之间的结点。测试要求:在空链表、max小于链表第1个元素值、min大于链表

    8、最后1个元素值、min与max在链表中间的情况下测试程序运行情况。主函数内的代码:linklist *del2(linklist *head) /删除链表中的min与max之间的元素linklist *p,*q1,*q2=NULL;int max=0,min=0;printf(请输入min和maxn);scanf(%d%d,&min,&max);printf(删除后链表为:n); if(head-next=NULL)return head; if(head-next-datamax)return head;else p=head;while(p-next!=NULL&p-next-datane

    9、xt; if(p-next=NULL)return head;else q1=p-next;q2=q1-next; while(q2!=NULL&q2-datanext; p-next=q2;while(q1!=q2)p=q1;q1=q1-next;free(p);return head;测试数据:12 15 18 23 45 78 min为15 max为23运行结果:四、完整程序#include/printf和scanf提供头文件#include/malloc和free提供头文件typedef int datatype;/定义数据元素的类型,命名为datatypetypedef struct

    10、 nodedatatype data;struct node *next;linklist;/定义结点类型,命名为linklistlinklist *createlist()int t;linklist *head,*s,*r; /s为新建结点,r为尾结点head=(linklist*)malloc(sizeof(linklist);/开辟空间,建立一个头结点r=head;printf(请输入数字序列,产生单链表,以-1结束。n);scanf(%d,&t);while(t!=-1)s=(linklist*)malloc(sizeof(linklist);s-data=t;r-next=s;r=

    11、s;scanf(%d,&t);r-next=NULL;return head;void printnode(linklist *head) /输出程序linklist *r;r=head-next;if(r=NULL)printf(输入为空n);while(r!=NULL)printf(%dt,r-data);r=r-next;printf(n输出结束n);void findi(linklist *head) /查找结点为i的值linklist *p,*q;int i=0,j=0;printf(输入要查找的结点:n);scanf(%d,&i);if(i=1)q=head-next;else p

    12、=head-next;j=1;while(p!=NULL)p=p-next;j+;if(i=j) q=p;break;if(p=NULL)printf(超出范围,不存在);else printf(查找的元素为:); printf(%dn,q-data);void findx(linklist *head) /查找值为x的结点linklist *p;int ch;int j=0;printf(请输入要查找的数值:n);scanf(%d,&ch);p=head-next;j=1;while(p!=NULL&p-data!=ch) p=p-next;j+;if(p=NULL)printf(你所输入的

    13、值不存在!n);elseprintf(第%d个元素为%dn,j,p-data);linklist *deld(linklist *head)/删除连续相同元素 linklist *p,*q; p=head-next;printf(删除后链表为:n); if(p=NULL) return head; else while(p-next!=NULL) q=p-next; if(p-data=q-data) p-next=q-next; free(q); else p=p-next; q=q-next; return head;linklist *del2(linklist *head) /删除链表

    14、中的min与max之间的元素linklist *p,*q1,*q2=NULL;int max=0,min=0;printf(请输入min和maxn);scanf(%d%d,&min,&max);printf(删除后链表为:n); if(head-next=NULL)return head; if(head-next-datamax)return head;else p=head;while(p-next!=NULL&p-next-datanext; if(p-next=NULL)return head;else q1=p-next;q2=q1-next; while(q2!=NULL&q2-datanext; p-next=q2;while(q1!=q2)p=q1;q1=q1-next;free(p);return head;void main()五、结论通过此次试验了解的链表的创建,运用了链表的删除和查找功能的实用。也更加强和巩固了C语言中构造函数的运用。六、评语


    注意事项

    本文(计算机软件基础实验报告2.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922